[hackers] [st] Make w3mimgdisplay work with st || Amadeusz Sławiński

From: <git_AT_suckless.org>
Date: Thu, 16 Jan 2014 10:21:59 +0100

commit c0a56ef4be2a0f84360f41b2d45964e7ef297746
Author: Amadeusz Sławiński <amade_AT_asmblr.net>
Date: Sat Jan 11 12:54:36 2014 +0100

    Make w3mimgdisplay work with st
    
    Before this patch draw() calls drawregion which calls xdraws and then
    updates whole window in one call thus overdrawing anything drawn by
    w3mimgdisplay. After moving XCopyArea to xdraws it only updates the
    regions which are being updated by XftDraw* functions. It may do a few
    more calls to XCopyArea with this patch.
    
    Signed-off-by: Amadeusz Sławiński <amade_AT_asmblr.net>

diff --git a/st.c b/st.c
index 4d543d1..48c81a2 100644
--- a/st.c
+++ b/st.c
_AT_@ -3301,6 +3301,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
                 XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1,
                                 width, 1);
         }
+ XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, winx, winy, width,
+ font->ascent + font->descent, winx, winy);
 
         /* Reset clip to none. */
         XftDrawSetClip(xw.draw, 0);
_AT_@ -3399,8 +3401,6 @@ redraw(int timeout) {
 void
 draw(void) {
         drawregion(0, 0, term.col, term.row);
- XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, xw.w,
- xw.h, 0, 0);
         XSetForeground(xw.dpy, dc.gc,
                         dc.col[IS_SET(MODE_REVERSE)?
                                 defaultfg : defaultbg].pixel);
Received on Thu Jan 16 2014 - 10:21:59 CET

This archive was generated by hypermail 2.3.0 : Thu Jan 16 2014 - 10:24:21 CET