diff options
author | shadmansaleh <13149513+shadmansaleh@users.noreply.github.com> | 2022-10-22 13:54:29 +0600 |
---|---|---|
committer | shadmansaleh <13149513+shadmansaleh@users.noreply.github.com> | 2022-10-24 21:14:41 +0600 |
commit | a53998ae78902309c225b323e0b8d9f1f75fe147 (patch) | |
tree | 4c019f10ec043613512d9623fa7c68ecd2f28043 /src | |
parent | 837190720310deca0231fc42aa3023957ff79a3a (diff) | |
download | rneovim-a53998ae78902309c225b323e0b8d9f1f75fe147.tar.gz rneovim-a53998ae78902309c225b323e0b8d9f1f75fe147.tar.bz2 rneovim-a53998ae78902309c225b323e0b8d9f1f75fe147.zip |
fix: setting tabline option not redrawing tabline
With #20374 tabline option is marked with 'statuslines' redraw flag.
But 'statuslines' doesn't redraw tabline. As a result, tabline doesn't
get redrawn when tabline option is set and statuslines get unnecessarily redrawn.
This patch fixes the issue by adding a new redraw flag P_RTABL to redraw
tabline.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/generators/gen_options.lua | 1 | ||||
-rw-r--r-- | src/nvim/option.c | 4 | ||||
-rw-r--r-- | src/nvim/option_defs.h | 1 | ||||
-rw-r--r-- | src/nvim/options.lua | 4 |
4 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/generators/gen_options.lua b/src/nvim/generators/gen_options.lua index 6dba6552b3..4e4dd83367 100644 --- a/src/nvim/generators/gen_options.lua +++ b/src/nvim/generators/gen_options.lua @@ -30,6 +30,7 @@ local type_flags={ local redraw_flags={ statuslines='P_RSTAT', + tabline = 'P_RTABL', current_window='P_RWIN', current_window_only='P_RWINONLY', current_buffer='P_RBUF', diff --git a/src/nvim/option.c b/src/nvim/option.c index 1a6cd0c1af..06662afd08 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -2648,6 +2648,10 @@ void check_redraw(uint32_t flags) status_redraw_all(); } + if ((flags & P_RTABL) || all) { // mark tablines dirty + redraw_tabline = true; + } + if ((flags & P_RBUF) || (flags & P_RWIN) || all) { changed_window_setting(); } diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h index c4333a6f61..19e4780e0a 100644 --- a/src/nvim/option_defs.h +++ b/src/nvim/option_defs.h @@ -24,6 +24,7 @@ #define P_NO_MKRC 0x200U ///< don't include in :mkvimrc output // when option changed, what to display: +#define P_RTABL 0x800U ///< redraw tabline #define P_RSTAT 0x1000U ///< redraw status lines #define P_RWIN 0x2000U ///< redraw current window and recompute text #define P_RBUF 0x4000U ///< redraw current buffer and recompute text diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 8a883a09c3..ba483d3714 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -19,7 +19,7 @@ -- types: bool, number, string -- lists: (nil), comma, onecomma, flags, flagscomma -- scopes: global, buffer, window --- redraw options: statuslines, current_window, curent_window_only, +-- redraw options: statuslines, tabline, current_window, curent_window_only, -- current_buffer, all_windows, curswant -- defaults: {condition=#if condition, if_true=default, if_false=default} -- #if condition: @@ -2407,7 +2407,7 @@ return { short_desc=N_("custom format for the console tab pages line"), type='string', scope={'global'}, modelineexpr=true, - redraw={'statuslines'}, + redraw={'tabline'}, varname='p_tal', defaults={if_true=""} }, |