X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.c;h=c0a4780aca6ee17d1933b9f3ff8c3d2101e4e782;hb=0851f2be2ab48ee3a67ef2287c09bd67622dcd8e;hp=92854b4a3bac9e677554de2cb2c20e7e11722acb;hpb=048c54fd5b275ac54d7819020485b77e99fcc469;p=st.git diff --git a/st.c b/st.c index 92854b4..c0a4780 100644 --- a/st.c +++ b/st.c @@ -1410,7 +1410,7 @@ tsetchar(char *c, Glyph *attr, int x, int y) { void tclearregion(int x1, int y1, int x2, int y2) { - int x, y, temp, mask; + int x, y, temp; if(x1 > x2) temp = x1, x1 = x2, x2 = temp; @@ -1425,9 +1425,9 @@ tclearregion(int x1, int y1, int x2, int y2) { for(y = y1; y <= y2; y++) { term.dirty[y] = 1; for(x = x1; x <= x2; x++) { - mask = selected(x, y) ? ATTR_REVERSE : 0; + if(selected(x, y)) + selclear(NULL); term.line[y][x] = term.c.attr; - term.line[y][x].mode ^= mask; memcpy(term.line[y][x].c, " ", 2); } } @@ -3096,7 +3096,7 @@ drawregion(int x1, int y1, int x2, int y2) { ic = ib = ox = 0; for(x = x1; x < x2; x++) { new = term.line[y][x]; - if(ena_sel && *(new.c) && selected(x, y)) + if(ena_sel && selected(x, y)) new.mode ^= ATTR_REVERSE; if(ib > 0 && (ATTRCMP(base, new) || ib >= DRAW_BUF_SIZ-UTF_SIZ)) {