From 5020daa6e5ced9235f5d11317c74f655a129803e Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Thu, 11 Apr 2019 13:51:07 +0200 Subject: ui/terminal: make terminal state redraw like any other state Previously, ordinary redraws were missing from terminal mode. Instead, there was an async callback that invoked update_screen() on terminal data regardless of mode (as if :redraw! was invoked by a timer). This created some issues: - async changes to an unrelated ordinary buffer were not always redrawn in terminal mode - screen cursor position was not properly updated in terminal mode (partial fix, will be properly fixed in a follow up PR) - ad-hoc logic was needed for interaction with special states such as inccommand or horizontal wildmenu. Instead redraw terminal mode just like any other state. This disables forced redraws in cmdline mode, which were inconisent which async changes to normal buffers (which are not redrawn in cmdline mode). --- test/functional/terminal/window_split_tab_spec.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test/functional/terminal/window_split_tab_spec.lua') diff --git a/test/functional/terminal/window_split_tab_spec.lua b/test/functional/terminal/window_split_tab_spec.lua index c0ce656bb1..ad70b3d14f 100644 --- a/test/functional/terminal/window_split_tab_spec.lua +++ b/test/functional/terminal/window_split_tab_spec.lua @@ -69,7 +69,7 @@ describe(':terminal', function() end) it('forwards resize request to the program', function() - feed([[G:]]) -- Go to cmdline-mode, so cursor is at bottom. + feed([[G]]) local w1, h1 = screen._width - 3, screen._height - 2 local w2, h2 = w1 - 6, h1 - 3 @@ -92,16 +92,16 @@ describe(':terminal', function() | | | + ^ | | - :^ | ]]) screen:try_resize(w2, h2) screen:expect([[ tty ready | rows: 7, cols: 47 | rows: 4, cols: 41 | - {2: } | - :^ | + {2:^ } | + | ]]) end) end) -- cgit