Browse Source

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>
master
Amadeusz Sławiński 11 years ago
committed by Roberto E. Vargas Caballero
parent
commit
c0a56ef4be
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      st.c

+ 2
- 2
st.c View File

@ -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, XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1,
width, 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. */ /* Reset clip to none. */
XftDrawSetClip(xw.draw, 0); XftDrawSetClip(xw.draw, 0);
@ -3399,8 +3401,6 @@ redraw(int timeout) {
void void
draw(void) { draw(void) {
drawregion(0, 0, term.col, term.row); 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, XSetForeground(xw.dpy, dc.gc,
dc.col[IS_SET(MODE_REVERSE)? dc.col[IS_SET(MODE_REVERSE)?
defaultfg : defaultbg].pixel); defaultfg : defaultbg].pixel);


Loading…
Cancel
Save