aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornoname <noname@inventati.org>2014-04-29 02:35:22 +0400
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2014-04-29 15:17:50 +0200
commit6b315558f8095b91988d5b305ed06e082da48889 (patch)
tree257aced6b0ea731190d9f8b4164ad5e9ff9ea3c4
parent5f91983541014d34274087dbf723b48551f90fc0 (diff)
downloadst-6b315558f8095b91988d5b305ed06e082da48889.tar.gz
st-6b315558f8095b91988d5b305ed06e082da48889.zip
Do not save cursor in tresize.
This patch fixes the bug introduced in 8f11e1cd034ff28ca47bb4955505db7fa8016ba8 To reproduce the bug: 1. Save cursor: printf '\e[s' 2. Load cursor: printf '\e[u' 3. Resize st window. 4. Load cursor again: printf '\e[u'
-rw-r--r--st.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/st.c b/st.c
index 5198749..c50a202 100644
--- a/st.c
+++ b/st.c
@@ -2634,6 +2634,7 @@ tresize(int col, int row) {
2634 int slide = term.c.y - row + 1; 2634 int slide = term.c.y - row + 1;
2635 bool *bp; 2635 bool *bp;
2636 Line *orig; 2636 Line *orig;
2637 TCursor c;
2637 2638
2638 if(col < 1 || row < 1) 2639 if(col < 1 || row < 1)
2639 return 0; 2640 return 0;
@@ -2695,6 +2696,7 @@ tresize(int col, int row) {
2695 tmoveto(term.c.x, term.c.y); 2696 tmoveto(term.c.x, term.c.y);
2696 /* Clearing both screens */ 2697 /* Clearing both screens */
2697 orig = term.line; 2698 orig = term.line;
2699 c = term.c;
2698 do { 2700 do {
2699 if(mincol < col && 0 < minrow) { 2701 if(mincol < col && 0 < minrow) {
2700 tclearregion(mincol, 0, col - 1, minrow - 1); 2702 tclearregion(mincol, 0, col - 1, minrow - 1);
@@ -2702,10 +2704,10 @@ tresize(int col, int row) {
2702 if(0 < col && minrow < row) { 2704 if(0 < col && minrow < row) {
2703 tclearregion(0, minrow, col - 1, row - 1); 2705 tclearregion(0, minrow, col - 1, row - 1);
2704 } 2706 }
2705 tcursor(CURSOR_SAVE);
2706 tswapscreen(); 2707 tswapscreen();
2707 tcursor(CURSOR_LOAD); 2708 tcursor(CURSOR_LOAD);
2708 } while(orig != term.line); 2709 } while(orig != term.line);
2710 term.c = c;
2709 2711
2710 return (slide > 0); 2712 return (slide > 0);
2711} 2713}