aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2022-10-17 10:19:26 +0100
committerGitHub <noreply@github.com>2022-10-17 10:19:26 +0100
commit190019dd79aa66d9be9003b0249473634dd854eb (patch)
tree62deb885a7c102273a6596091c5af7b7b96afe4d /src
parent042eb74ff1ed63d79f8a642649cd6be6ec4b0eb9 (diff)
parent2921de6a964e68bb0c9591c14b8550aee2e337da (diff)
downloadrneovim-190019dd79aa66d9be9003b0249473634dd854eb.tar.gz
rneovim-190019dd79aa66d9be9003b0249473634dd854eb.tar.bz2
rneovim-190019dd79aa66d9be9003b0249473634dd854eb.zip
Merge pull request #20665 from lewis6991/fix/decor_redraw
Diffstat (limited to 'src')
-rw-r--r--src/nvim/drawscreen.c47
1 files changed, 23 insertions, 24 deletions
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c
index 99f8c70799..a1582eac53 100644
--- a/src/nvim/drawscreen.c
+++ b/src/nvim/drawscreen.c
@@ -978,12 +978,33 @@ win_update_start:
return;
}
+ buf_T *buf = wp->w_buffer;
+
+ // reset got_int, otherwise regexp won't work
+ int save_got_int = got_int;
+ got_int = 0;
+ // Set the time limit to 'redrawtime'.
+ proftime_T syntax_tm = profile_setlimit(p_rdt);
+ syn_set_timeout(&syntax_tm);
+
+ win_extmark_arr.size = 0;
+
+ decor_redraw_reset(buf, &decor_state);
+
+ DecorProviders line_providers;
+ decor_providers_invoke_win(wp, providers, &line_providers, &provider_err);
+ if (must_redraw != 0) {
+ must_redraw = 0;
+ if (!called_decor_providers) {
+ called_decor_providers = true;
+ goto win_update_start;
+ }
+ }
+
redraw_win_signcol(wp);
init_search_hl(wp, &screen_search_hl);
- buf_T *buf = wp->w_buffer;
-
// Force redraw when width of 'number' or 'relativenumber' column
// changes.
int nrwidth = (wp->w_p_nu || wp->w_p_rnu) ? number_width(wp) : 0;
@@ -1496,28 +1517,6 @@ win_update_start:
wp->w_old_visual_col = 0;
}
- // reset got_int, otherwise regexp won't work
- int save_got_int = got_int;
- got_int = 0;
- // Set the time limit to 'redrawtime'.
- proftime_T syntax_tm = profile_setlimit(p_rdt);
- syn_set_timeout(&syntax_tm);
-
- win_extmark_arr.size = 0;
-
- decor_redraw_reset(buf, &decor_state);
-
- DecorProviders line_providers;
- decor_providers_invoke_win(wp, providers, &line_providers, &provider_err);
- (void)win_signcol_count(wp); // check if provider changed signcol width
- if (must_redraw != 0) {
- must_redraw = 0;
- if (!called_decor_providers) {
- called_decor_providers = true;
- goto win_update_start;
- }
- }
-
bool cursorline_standout = win_cursorline_standout(wp);
win_check_ns_hl(wp);