[gnome-builder/wip/chergert/docs] add shortcut for search entry



commit 0a06323e9230a09f6314572f41291ee7ef0e831b
Author: Christian Hergert <chergert redhat com>
Date:   Wed Jul 17 09:47:16 2019 -0700

    add shortcut for search entry

 src/libide/docs/ide-docs-workspace.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
---
diff --git a/src/libide/docs/ide-docs-workspace.c b/src/libide/docs/ide-docs-workspace.c
index 40b0ed717..1e7f4a35a 100644
--- a/src/libide/docs/ide-docs-workspace.c
+++ b/src/libide/docs/ide-docs-workspace.c
@@ -131,6 +131,18 @@ on_search_view_item_activated_cb (IdeDocsWorkspace  *self,
   gtk_stack_set_visible_child (self->stack, GTK_WIDGET (self->view));
 }
 
+static void
+ide_docs_workspace_focus_search_cb (GtkWidget *widget,
+                                    gpointer   user_data)
+{
+  IdeDocsWorkspace *self = user_data;
+
+  g_assert (GTK_IS_WIDGET (widget));
+  g_assert (IDE_IS_DOCS_WORKSPACE (self));
+
+  gtk_widget_grab_focus (GTK_WIDGET (self->entry));
+}
+
 static void
 ide_docs_workspace_destroy (GtkWidget *widget)
 {
@@ -166,6 +178,8 @@ ide_docs_workspace_class_init (IdeDocsWorkspaceClass *klass)
 static void
 ide_docs_workspace_init (IdeDocsWorkspace *self)
 {
+  DzlShortcutController *controller;
+
   gtk_widget_init_template (GTK_WIDGET (self));
 
   g_signal_connect_object (self->search_view,
@@ -179,4 +193,14 @@ ide_docs_workspace_init (IdeDocsWorkspace *self)
                            G_CALLBACK (on_search_entry_changed_cb),
                            self,
                            G_CONNECT_SWAPPED);
+
+  controller = dzl_shortcut_controller_find (GTK_WIDGET (self));
+
+  dzl_shortcut_controller_add_command_callback (controller,
+                                                "org.gnome.builder.docs.focus-search",
+                                                "<Control>K",
+                                                DZL_SHORTCUT_PHASE_BUBBLE | DZL_SHORTCUT_PHASE_GLOBAL,
+                                                ide_docs_workspace_focus_search_cb,
+                                                self,
+                                                NULL);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]