aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorJoe Hermaszewski <git@monoid.al>2015-10-23 07:00:59 +0100
committerJoe Hermaszewski <git@monoid.al>2015-11-17 22:36:28 +0000
commit33eb33bb623a8c01b549683f0db60483e269c7cf (patch)
treedd44b20180a9bd418c5a4b7529cccc643d904479 /src/nvim/edit.c
parented06071f1f61f625c3fef46e24b57d563852e4c9 (diff)
downloadrneovim-33eb33bb623a8c01b549683f0db60483e269c7cf.tar.gz
rneovim-33eb33bb623a8c01b549683f0db60483e269c7cf.tar.bz2
rneovim-33eb33bb623a8c01b549683f0db60483e269c7cf.zip
Implement handling of terminal focus events
Two new keys have been added to key_name_entry in keymap.c: `FocusGained` and `FocusLost`. Two cases have been added to the key handing switch in edit.c each applying their respective autocmds. In normal.c two functions have been added alongside nv_cursorhold doing a similar job of applying the autocmd for the appropriate key. tui/input.c has a new function `handle_focus_event` which eats either of the control sequences for focus gained or lost. This function is checked before handle_bracketed_paste and handle_forced_escape. tui.c registers neovim as able to receive these control sequences in terminfo_start and undoes that in terminfo_stop. Closes #2302
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index abd16e57ae..208e41946b 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -977,6 +977,14 @@ static int insert_handle_key(InsertState *s)
queue_process_events(loop.events);
break;
+ case K_FOCUSGAINED: // Neovim has been given focus
+ apply_autocmds(EVENT_FOCUSGAINED, NULL, NULL, false, curbuf);
+ break;
+
+ case K_FOCUSLOST: // Neovim has lost focus
+ apply_autocmds(EVENT_FOCUSLOST, NULL, NULL, false, curbuf);
+ break;
+
case K_HOME: // <Home>
case K_KHOME:
case K_S_HOME: