From b009d6875b9ff4b033c4b5c547eaab1b3bc05f78 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 1 Feb 2011 13:41:01 +0000 Subject: [PATCH] shell: Add shortcuts to focus search entry Ctrl+S and Ctrl+F are used in overview mode to focus the search entry. https://bugzilla.gnome.org/show_bug.cgi?id=409230 --- shell/gnome-control-center.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/shell/gnome-control-center.c b/shell/gnome-control-center.c index 3a1d2dba8..0e8a54a8b 100644 --- a/shell/gnome-control-center.c +++ b/shell/gnome-control-center.c @@ -946,6 +946,35 @@ viewport_style_set_cb (GtkWidget *widget, g_signal_handlers_unblock_by_func (widget, viewport_style_set_cb, NULL); } +static gboolean +window_key_press_event (GtkWidget *win, + GdkEventKey *event, + GnomeControlCenter *self) +{ + gboolean retval; + + retval = FALSE; + + if (!gtk_widget_get_visible (self->priv->search_entry)) + return retval; + + if (event->state != 0 && + (event->state & GDK_CONTROL_MASK)) + { + switch (event->keyval) + { + case GDK_KEY_s: + case GDK_KEY_S: + case GDK_KEY_f: + case GDK_KEY_F: + gtk_widget_grab_focus (self->priv->search_entry); + retval = TRUE; + break; + } + } + return retval; +} + static void gnome_control_center_init (GnomeControlCenter *self) { @@ -969,6 +998,8 @@ gnome_control_center_init (GnomeControlCenter *self) /* connect various signals */ priv->window = W (priv->builder, "main-window"); g_signal_connect_swapped (priv->window, "delete-event", G_CALLBACK (g_object_unref), self); + g_signal_connect (priv->window, "key_press_event", + G_CALLBACK (window_key_press_event), self); priv->notebook = W (priv->builder, "notebook"); priv->scrolled_window = W (priv->builder, "scrolledwindow1");