diff options
author | Yatao Li <yatli@microsoft.com> | 2021-07-15 02:53:58 +0800 |
---|---|---|
committer | Yatao Li <yatli@microsoft.com> | 2021-09-08 01:57:40 +0800 |
commit | 28ac6c00e6f61d40f082af3ae3db380d7951acee (patch) | |
tree | bbcb3379a779aeb6b77772c3eed28d99e3466060 /src | |
parent | db695cc4cafa6c26eb71a183cc73a167b842731e (diff) | |
download | rneovim-28ac6c00e6f61d40f082af3ae3db380d7951acee.tar.gz rneovim-28ac6c00e6f61d40f082af3ae3db380d7951acee.tar.bz2 rneovim-28ac6c00e6f61d40f082af3ae3db380d7951acee.zip |
fix(multigrid): #15075 mouse events crash neovim
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/mouse.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c index 6c25525936..c599f4ea97 100644 --- a/src/nvim/mouse.c +++ b/src/nvim/mouse.c @@ -723,14 +723,20 @@ int mouse_check_fold(void) int click_row = mouse_row; int click_col = mouse_col; int mouse_char = ' '; + int max_row = Rows; + int max_col = Columns; + int multigrid = ui_has(kUIMultigrid); win_T *wp; wp = mouse_find_win(&click_grid, &click_row, &click_col); + if (wp && multigrid) { + max_row = wp->w_grid_alloc.Rows; + max_col = wp->w_grid_alloc.Columns; + } - if (wp && mouse_row >= 0 && mouse_row < Rows - && mouse_col >= 0 && mouse_col <= Columns) { - int multigrid = ui_has(kUIMultigrid); + if (wp && mouse_row >= 0 && mouse_row < max_row + && mouse_col >= 0 && mouse_col < max_col) { ScreenGrid *gp = multigrid ? &wp->w_grid_alloc : &default_grid; int fdc = win_fdccol_count(wp); int row = multigrid && mouse_grid == 0 ? click_row : mouse_row; |