aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/window.c
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2024-12-12 18:45:57 +0800
committerGitHub <noreply@github.com>2024-12-12 02:45:57 -0800
commit17383870dd3b7f04eddd48ed929cc25c7e102277 (patch)
treec23df9162c2e9ab174ad628c4a475f788555bc44 /src/nvim/window.c
parentde794f2d24099b73419ce2cd98424f702908040f (diff)
downloadrneovim-17383870dd3b7f04eddd48ed929cc25c7e102277.tar.gz
rneovim-17383870dd3b7f04eddd48ed929cc25c7e102277.tar.bz2
rneovim-17383870dd3b7f04eddd48ed929cc25c7e102277.zip
fix(float): re-sort layers when grid zindex changed #30259
Problem: when zindex is changed in vim.schedule the zindex sort in layers not changed. Solution: resort layers when zindex changed.
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r--src/nvim/window.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 79c3ce9304..938d9d7618 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -852,7 +852,13 @@ void ui_ext_win_position(win_T *wp, bool validate)
}
}
+ bool resort = wp->w_grid_alloc.comp_index != 0
+ && wp->w_grid_alloc.zindex != wp->w_config.zindex;
+ bool raise = resort && wp->w_grid_alloc.zindex < wp->w_config.zindex;
wp->w_grid_alloc.zindex = wp->w_config.zindex;
+ if (resort) {
+ ui_comp_layers_adjust(wp->w_grid_alloc.comp_index, raise);
+ }
if (ui_has(kUIMultigrid)) {
String anchor = cstr_as_string(float_anchor_str[c.anchor]);
if (!c.hide) {