all repos — st @ c0a56ef4be2a0f84360f41b2d45964e7ef297746

st (suckless terminal) config

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@asmblr.net>
Amadeusz Sławiński amade@asmblr.net
commit

c0a56ef4be2a0f84360f41b2d45964e7ef297746

parent

9df9a4723dedf4f5e12c954376c4931a6976b918

1 files changed, 2 insertions(+), 2 deletions(-)

jump to
M st.cst.c

@@ -3301,6 +3301,8 @@ if(base.mode & ATTR_UNDERLINE) {

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);

@@ -3399,8 +3401,6 @@

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);