terminal: Run screen refresh timer in a deferred queue

Close #3332
This commit is contained in:
Thiago de Arruda 2015-09-15 08:12:55 -03:00
parent 1f90cbb4ae
commit 47cbbc0b8c
2 changed files with 3 additions and 2 deletions

View File

@ -155,6 +155,8 @@ void terminal_init(void)
{
invalidated_terminals = pmap_new(ptr_t)();
time_watcher_init(&loop, &refresh_timer, NULL);
// refresh_timer_cb will redraw the screen which can call vimscript
refresh_timer.events = queue_new_child(loop.events);
// initialize a rgb->color index map for cterm attributes(VTermScreenCell
// only has RGB information and we need color indexes for terminal UIs)
@ -180,6 +182,7 @@ void terminal_init(void)
void terminal_teardown(void)
{
time_watcher_stop(&refresh_timer);
queue_free(refresh_timer.events);
time_watcher_close(&refresh_timer, NULL);
pmap_free(ptr_t)(invalidated_terminals);
map_free(int, int)(color_indexes);

View File

@ -27,8 +27,6 @@ describe('terminal cursor', function()
|
-- TERMINAL -- |
]])
eq(2, screen._cursor.row)
eq(15, screen._cursor.col)
end)
it('is highlighted when not focused', function()