diff options
author | bfredl <bjorn.linse@gmail.com> | 2024-03-14 10:03:59 +0100 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2024-03-14 14:39:08 +0100 |
commit | 0570a19c8a84debcdf2bc73f4c5f2d7d9de3ead2 (patch) | |
tree | 305bc90ee3b7aa1118d45f69dd8383c756b4b661 /src/nvim/drawscreen.c | |
parent | 8955cef0c6963678994347dbf95ed09fc8e29407 (diff) | |
download | rneovim-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.c | 14 |
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(); |