Mercurial > vim
comparison src/terminal.c @ 12170:1345621ecdfb v8.0.0965
patch 8.0.0965: not restoring cursor shape after it was set in a terminal
commit https://github.com/vim/vim/commit/3eee06e7d4c3a8e2dbb2577a1eef0e0f108e0288
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Aug 19 19:40:50 2017 +0200
patch 8.0.0965: not restoring cursor shape after it was set in a terminal
Problem: The cursor shape is not reset after it was changed in a terminal.
Solution: Request the original cursor shape and restore it. Add t_RS.
Do not add t_SH for now, it does not work properly.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 19 Aug 2017 19:45:04 +0200 |
parents | b80c0172d1a8 |
children | 782a06ba2187 |
comparison
equal
deleted
inserted
replaced
12169:28f606bb906c | 12170:1345621ecdfb |
---|---|
36 * that buffer, attributes come from the scrollback buffer tl_scrollback. | 36 * that buffer, attributes come from the scrollback buffer tl_scrollback. |
37 * When the buffer is changed it is turned into a normal buffer, the attributes | 37 * When the buffer is changed it is turned into a normal buffer, the attributes |
38 * in tl_scrollback are no longer used. | 38 * in tl_scrollback are no longer used. |
39 * | 39 * |
40 * TODO: | 40 * TODO: |
41 * - help index for winptydll, optwin entry for winptydll | |
41 * - make [range]terminal pipe [range] lines to the terminal | 42 * - make [range]terminal pipe [range] lines to the terminal |
42 * - implement term_setsize() | 43 * - implement term_setsize() |
43 * - add test for giving error for invalid 'termsize' value. | 44 * - add test for giving error for invalid 'termsize' value. |
44 * - support minimal size when 'termsize' is "rows*cols". | 45 * - support minimal size when 'termsize' is "rows*cols". |
45 * - support minimal size when 'termsize' is empty? | 46 * - support minimal size when 'termsize' is empty? |
1285 return; | 1286 return; |
1286 #endif | 1287 #endif |
1287 if (did_change_cursor) | 1288 if (did_change_cursor) |
1288 { | 1289 { |
1289 did_change_cursor = FALSE; | 1290 did_change_cursor = FALSE; |
1290 ui_cursor_shape_forced(TRUE); | |
1291 term_cursor_color((char_u *)""); | 1291 term_cursor_color((char_u *)""); |
1292 term_cursor_blink(FALSE); | 1292 term_cursor_blink(FALSE); |
1293 /* this will restore the initial cursor style, if possible */ | |
1294 ui_cursor_shape_forced(TRUE); | |
1293 } | 1295 } |
1294 } | 1296 } |
1295 | 1297 |
1296 /* | 1298 /* |
1297 * Returns TRUE if the current window contains a terminal and we are sending | 1299 * Returns TRUE if the current window contains a terminal and we are sending |