diff options
| author | noname <noname@inventati.org> | 2014-04-29 02:35:22 +0400 | 
|---|---|---|
| committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-04-29 15:17:50 +0200 | 
| commit | 6b315558f8095b91988d5b305ed06e082da48889 (patch) | |
| tree | 257aced6b0ea731190d9f8b4164ad5e9ff9ea3c4 | |
| parent | 5f91983541014d34274087dbf723b48551f90fc0 (diff) | |
| download | st-6b315558f8095b91988d5b305ed06e082da48889.tar.gz st-6b315558f8095b91988d5b305ed06e082da48889.tar.bz2  | |
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.c | 4 | 
1 files changed, 3 insertions, 1 deletions
@@ -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; @@ -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); @@ -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);  }  | 
