diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-10-31 12:05:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-31 12:05:37 +0800 |
commit | c881092ffe9d6760d08efcd4dfb02efcb60cc706 (patch) | |
tree | cd430c42c948b3e178b2efe298c01ab4c127cf0b /src | |
parent | 6d1a2f2c3c51560555ea6f7867273635d07eb287 (diff) | |
download | rneovim-c881092ffe9d6760d08efcd4dfb02efcb60cc706.tar.gz rneovim-c881092ffe9d6760d08efcd4dfb02efcb60cc706.tar.bz2 rneovim-c881092ffe9d6760d08efcd4dfb02efcb60cc706.zip |
fix(terminal): don't lose focus on <MouseMove> (#25845)
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/terminal.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index a564738243..fbfe8c04a6 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -1506,13 +1506,14 @@ static bool send_mouse_event(Terminal *term, int c) return mouse_win == curwin; } - // ignore left release action if it was not processed above - // to prevent leaving Terminal mode after entering to it using a mouse - if (c == K_LEFTRELEASE && mouse_win->w_buffer->terminal == term) { +end: + // Ignore left release action if it was not forwarded to prevent + // leaving Terminal mode after entering to it using a mouse. + if ((c == K_LEFTRELEASE && mouse_win != NULL && mouse_win->w_buffer->terminal == term) + || c == K_MOUSEMOVE) { return false; } -end: ins_char_typebuf(vgetc_char, vgetc_mod_mask); return true; } |