From eeb1099bc419ce265c03cc82b1b3bc9cfc1ea208 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Wed, 21 Apr 2021 10:55:54 +0200 Subject: ui_compositior: handle multiple displayed floats in the same tick problem: the order of non-focuesed float opened before focused float is wrong (sunjon) solution: check curwin and correct the order (bfredl) --- src/nvim/ui_compositor.c | 3 ++- src/nvim/window.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/nvim/ui_compositor.c b/src/nvim/ui_compositor.c index a2e9266fbb..c1e4a40ef2 100644 --- a/src/nvim/ui_compositor.c +++ b/src/nvim/ui_compositor.c @@ -180,7 +180,8 @@ bool ui_comp_put_grid(ScreenGrid *grid, int row, int col, int height, int width, if (kv_A(layers, insert_at-1) == &pum_grid && (grid != &msg_grid)) { insert_at--; } - if (insert_at > 1 && !on_top) { + if (curwin && kv_A(layers, insert_at-1) == &curwin->w_grid_alloc + && !on_top) { insert_at--; } // not found: new grid diff --git a/src/nvim/window.c b/src/nvim/window.c index c482d265ff..d1163399f5 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -772,9 +772,8 @@ void ui_ext_win_position(win_T *wp) wp->w_winrow = comp_row; wp->w_wincol = comp_col; bool valid = (wp->w_redr_type == 0); - bool on_top = (curwin == wp) || !curwin->w_floating; ui_comp_put_grid(&wp->w_grid_alloc, comp_row, comp_col, - wp->w_height_outer, wp->w_width_outer, valid, on_top); + wp->w_height_outer, wp->w_width_outer, valid, false); ui_check_cursor_grid(wp->w_grid_alloc.handle); wp->w_grid_alloc.focusable = wp->w_float_config.focusable; if (!valid) { -- cgit