diff options
author | Christian Hergert <chergert@redhat.com> | 2022-09-21 22:54:58 -0700 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2022-09-21 22:54:58 -0700 |
commit | 342caac709d25abd0fefde264f1dae7f96248652 (patch) | |
tree | fd827a7b4e553ccbc49a74ad9ec6d1f8386a323f | |
parent | 10728bdd397cd8098970720d0b9a5e7ead201125 (diff) | |
download | gtksourceview-342caac709d25abd0fefde264f1dae7f96248652.tar.gz |
vim: allow applications to handle gd/gD
-rw-r--r-- | gtksourceview/vim/gtksourcevimnormal.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gtksourceview/vim/gtksourcevimnormal.c b/gtksourceview/vim/gtksourcevimnormal.c index 54cd61f3..5f85052d 100644 --- a/gtksourceview/vim/gtksourcevimnormal.c +++ b/gtksourceview/vim/gtksourcevimnormal.c @@ -1048,6 +1048,7 @@ key_handler_g (GtkSourceVimNormal *self, const char *string) { GtkSourceVimState *new_state; + GtkSourceVimState *root; g_assert (GTK_SOURCE_IS_VIM_NORMAL (self)); @@ -1077,6 +1078,19 @@ key_handler_g (GtkSourceVimNormal *self, gtk_source_vim_state_push (GTK_SOURCE_VIM_STATE (self), new_state); return TRUE; + case GDK_KEY_d: + case GDK_KEY_D: + if ((root = gtk_source_vim_state_get_root (GTK_SOURCE_VIM_STATE (self))) && + GTK_SOURCE_IS_VIM (root)) + { + const char *command = keyval == GDK_KEY_d ? "gd" : "gD"; + gtk_source_vim_emit_execute_command (GTK_SOURCE_VIM (root), command); + gtk_source_vim_normal_clear (self); + return TRUE; + } + + G_GNUC_FALLTHROUGH; + default: return gtk_source_vim_normal_bail (self); } |