diff options
-rw-r--r-- | src/nvim/screen.c | 4 | ||||
-rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 76 |
2 files changed, 78 insertions, 2 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index e4485b4e2e..d095bdb7c8 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -669,8 +669,8 @@ static void win_update(win_T *wp) type = wp->w_redr_type; - if (type == NOT_VALID) { - wp->w_redr_status = TRUE; + if (type >= NOT_VALID) { + wp->w_redr_status = true; wp->w_lines_valid = 0; } diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index 1a8b7d543a..04d532f6e1 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -156,6 +156,82 @@ local function screen_tests(linegrid) end) end) + describe('statusline', function() + it('is redrawn after <c-l>', function() + command('set laststatus=2') + screen:expect([[ + ^ | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {1:[No Name] }| + | + ]]) + + feed('<c-l>') + screen:expect{grid=[[ + ^ | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {1:[No Name] }| + | + ]], reset=true} + + command('split') + screen:expect([[ + ^ | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {1:[No Name] }| + | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {3:[No Name] }| + | + ]]) + + feed('<c-l>') + screen:expect{grid=[[ + ^ | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {1:[No Name] }| + | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {3:[No Name] }| + | + ]], reset=true} + end) + end) + describe('window', function() describe('split', function() it('horizontal', function() |