st

simple terminal

git clone https://9o.is/git/st.git

commit d53e792ae58065767014dbbdfd4f26ea7df860f0
parent 07193c05f08cc76253bb8e04fa234e956f90b104
Author: Amadeusz Sławiński <amade@asmblr.net>
Date:   Sat, 11 Jan 2014 12:54:36 +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@asmblr.net>

Diffstat:
Mst.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/st.c b/st.c @@ -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); @@ -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);