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.
This commit is contained in:
bfredl
2024-03-14 10:03:59 +01:00
parent 8955cef0c6
commit 0570a19c8a
3 changed files with 57 additions and 17 deletions

View File

@@ -2710,15 +2710,13 @@ void list_version(void)
: "\nRun \":verbose version\" for more info"));
}
/// Show the intro message when not editing a file.
void maybe_intro_message(void)
/// Whether it still is not too late to show an intro message
bool may_show_intro(void)
{
if (buf_is_empty(curbuf)
&& (curbuf->b_fname == NULL)
&& (firstwin->w_next == NULL)
&& (vim_strchr(p_shm, SHM_INTRO) == NULL)) {
intro_message(false);
}
return (buf_is_empty(curbuf)
&& (curbuf->b_fname == NULL)
&& (firstwin->w_next == NULL)
&& (vim_strchr(p_shm, SHM_INTRO) == NULL));
}
/// Give an introductory message about Vim.