diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-07-02 15:53:43 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-09-01 15:55:10 +0200 |
commit | b51ba122c1edfb769e72c25c4f14f469f59f1b8e (patch) | |
tree | 84052cf27b2e1aa904b898cd01d9d35df9afaf92 /src/nvim/mouse.c | |
parent | 9cec097ffacfd0de100912781df2efed1a4c8ba9 (diff) | |
download | rneovim-b51ba122c1edfb769e72c25c4f14f469f59f1b8e.tar.gz rneovim-b51ba122c1edfb769e72c25c4f14f469f59f1b8e.tar.bz2 rneovim-b51ba122c1edfb769e72c25c4f14f469f59f1b8e.zip |
screen: use dedicated message grid
add proper msg_set_pos event, delet win_scroll_over_*
make compositor click through unfocusable grids
add MsgArea attribute for the message/cmdline area, and add docs and tests
Diffstat (limited to 'src/nvim/mouse.c')
-rw-r--r-- | src/nvim/mouse.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c index 6d1a517ce8..d0aa0653cb 100644 --- a/src/nvim/mouse.c +++ b/src/nvim/mouse.c @@ -440,8 +440,11 @@ win_T *mouse_find_win(int *gridp, int *rowp, int *colp) win_T *wp_grid = mouse_find_grid_win(gridp, rowp, colp); if (wp_grid) { return wp_grid; + } else if (*gridp > 1) { + return NULL; } + frame_T *fp; fp = topframe; @@ -475,7 +478,10 @@ win_T *mouse_find_win(int *gridp, int *rowp, int *colp) static win_T *mouse_find_grid_win(int *gridp, int *rowp, int *colp) { - if (*gridp > 1) { + if (*gridp == msg_grid.handle) { + rowp += msg_grid_pos; + *gridp = DEFAULT_GRID_HANDLE; + } else if (*gridp > 1) { win_T *wp = get_win_by_grid_handle(*gridp); if (wp && wp->w_grid.chars && !(wp->w_floating && !wp->w_float_config.focusable)) { @@ -486,7 +492,7 @@ static win_T *mouse_find_grid_win(int *gridp, int *rowp, int *colp) } else if (*gridp == 0) { ScreenGrid *grid = ui_comp_mouse_focus(*rowp, *colp); FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { - if (&wp->w_grid != grid || !wp->w_float_config.focusable) { + if (&wp->w_grid != grid) { continue; } *gridp = grid->handle; |