tDo not save cursor in tresize. - st - [fork] customized build of st, the simpl… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 6b315558f8095b91988d5b305ed06e082da48889 | |
parent 5f91983541014d34274087dbf723b48551f90fc0 | |
Author: noname <[email protected]> | |
Date: Tue, 29 Apr 2014 02:35:22 +0400 | |
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' | |
Diffstat: | |
M st.c | 4 +++- | |
1 file changed, 3 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -2634,6 +2634,7 @@ tresize(int col, int row) { | |
int slide = term.c.y - row + 1; | |
bool *bp; | |
Line *orig; | |
+ TCursor c; | |
if(col < 1 || row < 1) | |
return 0; | |
t@@ -2695,6 +2696,7 @@ tresize(int col, int row) { | |
tmoveto(term.c.x, term.c.y); | |
/* Clearing both screens */ | |
orig = term.line; | |
+ c = term.c; | |
do { | |
if(mincol < col && 0 < minrow) { | |
tclearregion(mincol, 0, col - 1, minrow - 1); | |
t@@ -2702,10 +2704,10 @@ tresize(int col, int row) { | |
if(0 < col && minrow < row) { | |
tclearregion(0, minrow, col - 1, row - 1); | |
} | |
- tcursor(CURSOR_SAVE); | |
tswapscreen(); | |
tcursor(CURSOR_LOAD); | |
} while(orig != term.line); | |
+ term.c = c; | |
return (slide > 0); | |
} |