mirror of
https://github.com/neovim/neovim.git
synced 2025-09-17 16:58:17 +00:00
fix(events): skip WinScrolled for newly-created float windows (#21333)
Unlike split windows, creating a new floating window does not cause other windows to resize, so it doesn't make much sense to trigger WinScrolled or WinResized when creating a new floating window.
This commit is contained in:
@@ -5405,6 +5405,18 @@ static int check_window_scroll_resize(int *size_count, win_T **first_scroll_win,
|
||||
int tot_skipcol = 0;
|
||||
|
||||
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
|
||||
// Skip floating windows that do not have a snapshot (usually becuase they are newly-created),
|
||||
// as unlike split windows, creating floating windows do not cause other windows to resize.
|
||||
if (wp->w_floating && wp->w_last_topline == 0) {
|
||||
wp->w_last_topline = wp->w_topline;
|
||||
wp->w_last_topfill = wp->w_topfill;
|
||||
wp->w_last_leftcol = wp->w_leftcol;
|
||||
wp->w_last_skipcol = wp->w_skipcol;
|
||||
wp->w_last_width = wp->w_width;
|
||||
wp->w_last_height = wp->w_height;
|
||||
continue;
|
||||
}
|
||||
|
||||
const bool size_changed = wp->w_last_width != wp->w_width
|
||||
|| wp->w_last_height != wp->w_height;
|
||||
if (size_changed) {
|
||||
|
Reference in New Issue
Block a user