diff options
author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2010-08-31 11:02:17 +0200 |
---|---|---|
committer | Aurélien Aptel <aurelien.aptel@gmail.com> | 2010-08-31 11:02:17 +0200 |
commit | 160bda1b60148ce8f7d3b001ada2b12f1da9e152 (patch) | |
tree | 82d8203c1a7c307b3f374c39e055bd4c06ac4bf9 /st.c | |
parent | 596bb133a55a6aba13b55795a9a38e29fcf1b38b (diff) | |
download | st-160bda1b60148ce8f7d3b001ada2b12f1da9e152.tar.gz |
toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile.
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 25 |
1 files changed, 8 insertions, 17 deletions
@@ -828,22 +828,17 @@ csihandle(void) { case 25: term.c.state |= CURSOR_HIDE; break; + case 1049: /* = 1047 and 1048 */ case 1047: if(IS_SET(MODE_ALTSCREEN)) { tclearregion(0, 0, term.col-1, term.row-1); tswapscreen(); } - break; + if(escseq.arg[0] == 1047) + break; case 1048: tcursor(CURSOR_LOAD); break; - case 1049: - tcursor(CURSOR_LOAD); - if(IS_SET(MODE_ALTSCREEN)) { - tclearregion(0, 0, term.col-1, term.row-1); - tswapscreen(); - } - break; default: goto unknown; } @@ -888,22 +883,17 @@ csihandle(void) { case 25: term.c.state &= ~CURSOR_HIDE; break; + case 1049: /* = 1047 and 1048 */ case 1047: if(IS_SET(MODE_ALTSCREEN)) tclearregion(0, 0, term.col-1, term.row-1); else tswapscreen(); - break; + if(escseq.arg[0] == 1047) + break; case 1048: tcursor(CURSOR_SAVE); break; - case 1049: - tcursor(CURSOR_SAVE); - if(IS_SET(MODE_ALTSCREEN)) - tclearregion(0, 0, term.col-1, term.row-1); - else - tswapscreen(); - break; default: goto unknown; } } else { @@ -1222,6 +1212,7 @@ xinit(void) { xw.bufw = xw.w - 2*BORDER; xw.bufh = xw.h - 2*BORDER; xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr)); + xw.hasfocus = 1; /* gc */ dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL); XMapWindow(xw.dis, xw.win); @@ -1322,7 +1313,7 @@ draw(int redraw_all) { for(x = 0; x < term.col; x++) { new = term.line[y][x]; if(selbx!=-1 && new.c && selected(x, y)) - new.mode = ATTR_REVERSE; + new.mode ^= ATTR_REVERSE; if(i > 0 && (!(new.state & GLYPH_SET) || ATTRCMP(base, new) || i >= DRAW_BUF_SIZ)) { xdraws(buf, base, ox, y, i); |