mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(events): check for WinResized/WinScrolled in terminal mode (#27226)
This commit is contained in:
parent
7367838359
commit
bf9e92c81c
@ -93,6 +93,7 @@
|
|||||||
#include "nvim/types_defs.h"
|
#include "nvim/types_defs.h"
|
||||||
#include "nvim/ui.h"
|
#include "nvim/ui.h"
|
||||||
#include "nvim/vim_defs.h"
|
#include "nvim/vim_defs.h"
|
||||||
|
#include "nvim/window.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VimState state;
|
VimState state;
|
||||||
@ -615,6 +616,8 @@ static int terminal_check(VimState *state)
|
|||||||
curbuf->b_locked--;
|
curbuf->b_locked--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
may_trigger_win_scrolled_resized();
|
||||||
|
|
||||||
if (need_maketitle) { // Update title in terminal-mode. #7248
|
if (need_maketitle) { // Update title in terminal-mode. #7248
|
||||||
maketitle();
|
maketitle();
|
||||||
}
|
}
|
||||||
|
@ -5367,7 +5367,7 @@ static int check_window_scroll_resize(int *size_count, win_T **first_scroll_win,
|
|||||||
|
|
||||||
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
|
FOR_ALL_WINDOWS_IN_TAB(wp, curtab) {
|
||||||
// Skip floating windows that do not have a snapshot (usually because they are newly-created),
|
// Skip floating windows that do not have a snapshot (usually because they are newly-created),
|
||||||
// as unlike split windows, creating floating windows do not cause other windows to resize.
|
// as unlike split windows, creating floating windows doesn't cause other windows to resize.
|
||||||
if (wp->w_floating && wp->w_last_topline == 0) {
|
if (wp->w_floating && wp->w_last_topline == 0) {
|
||||||
wp->w_last_topline = wp->w_topline;
|
wp->w_last_topline = wp->w_topline;
|
||||||
wp->w_last_topfill = wp->w_topfill;
|
wp->w_last_topfill = wp->w_topfill;
|
||||||
|
@ -39,6 +39,23 @@ describe('WinResized', function()
|
|||||||
eq(2, eval('g:resized'))
|
eq(2, eval('g:resized'))
|
||||||
eq({ windows = { 1002, 1001, 1000 } }, eval('g:v_event'))
|
eq({ windows = { 1002, 1001, 1000 } }, eval('g:v_event'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('is triggered in terminal mode #21197 #27207', function()
|
||||||
|
exec([[
|
||||||
|
autocmd TermOpen * startinsert
|
||||||
|
let g:resized = 0
|
||||||
|
autocmd WinResized * let g:resized += 1
|
||||||
|
]])
|
||||||
|
eq(0, eval('g:resized'))
|
||||||
|
|
||||||
|
command('vsplit term://')
|
||||||
|
eq({ mode = 't', blocking = false }, api.nvim_get_mode())
|
||||||
|
eq(1, eval('g:resized'))
|
||||||
|
|
||||||
|
command('split')
|
||||||
|
eq({ mode = 't', blocking = false }, api.nvim_get_mode())
|
||||||
|
eq(2, eval('g:resized'))
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('WinScrolled', function()
|
describe('WinScrolled', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user