aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/drawscreen.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-03-14 10:03:59 +0100
committerbfredl <bjorn.linse@gmail.com>2024-03-14 14:39:08 +0100
commit0570a19c8a84debcdf2bc73f4c5f2d7d9de3ead2 (patch)
tree305bc90ee3b7aa1118d45f69dd8383c756b4b661 /src/nvim/drawscreen.c
parent8955cef0c6963678994347dbf95ed09fc8e29407 (diff)
downloadrneovim-0570a19c8a84debcdf2bc73f4c5f2d7d9de3ead2.tar.gz
rneovim-0570a19c8a84debcdf2bc73f4c5f2d7d9de3ead2.tar.bz2
rneovim-0570a19c8a84debcdf2bc73f4c5f2d7d9de3ead2.zip
fix(intro): make intro explicitly stateful
Instead of randomly disappearing because some random event might have caused mid_start or bot_scroll_start to randomly take a low value, treat intro message as a _first class stateful_ thing. This means that intro message will kept being _redrawn_ as long as we are in the state it should be shown. This also includes screen resizes. you will not lose the intro message because there was a delay in detecting terminal features.
Diffstat (limited to 'src/nvim/drawscreen.c')
-rw-r--r--src/nvim/drawscreen.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c
index f2ad4ca77e..1fb42af786 100644
--- a/src/nvim/drawscreen.c
+++ b/src/nvim/drawscreen.c
@@ -421,7 +421,14 @@ bool redrawing(void)
/// and redraw_all_later() to mark parts of the screen as needing a redraw.
int update_screen(void)
{
- static bool did_intro = false;
+ static bool still_may_intro = true;
+ if (still_may_intro) {
+ if (!may_show_intro()) {
+ must_redraw = UPD_NOT_VALID;
+ still_may_intro = false;
+ }
+ }
+
bool is_stl_global = global_stl_height() > 0;
// Don't do anything if the screen structures are (not yet) valid.
@@ -673,10 +680,9 @@ int update_screen(void)
}
// May put up an introductory message when not editing a file
- if (!did_intro) {
- maybe_intro_message();
+ if (still_may_intro) {
+ intro_message(false);
}
- did_intro = true;
decor_providers_invoke_end();