summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Kasik <mkasik@redhat.com>2018-05-10 14:13:38 +0200
committerFelipe Borges <felipe10borges@gmail.com>2018-05-10 16:47:10 +0000
commitf3257ce82a1f7db6eac649fa5d26d487ea946a85 (patch)
tree29e0fc2ff7fc5e731240c01810818fe47ea10eb9
parent1d26f63b18f54e2d354d64ec8b312c70b35a2808 (diff)
downloadgnome-control-center-add-printers-dialog-entry-grab-focus.tar.gz
printers: Focus search entry in new printer dialogadd-printers-dialog-entry-grab-focus
Focus search entry in the new printer dialog once user starts to type so he does not need to click on it. Closes #41
-rw-r--r--panels/printers/new-printer-dialog.ui1
-rw-r--r--panels/printers/pp-new-printer-dialog.c16
2 files changed, 17 insertions, 0 deletions
diff --git a/panels/printers/new-printer-dialog.ui b/panels/printers/new-printer-dialog.ui
index 0e9a8110a..437220542 100644
--- a/panels/printers/new-printer-dialog.ui
+++ b/panels/printers/new-printer-dialog.ui
@@ -153,6 +153,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="transition-type">none</property>
+ <property name="has_focus">True</property>
<style>
<class name="view"/>
</style>
diff --git a/panels/printers/pp-new-printer-dialog.c b/panels/printers/pp-new-printer-dialog.c
index 7a15a455f..e7857fc01 100644
--- a/panels/printers/pp-new-printer-dialog.c
+++ b/panels/printers/pp-new-printer-dialog.c
@@ -506,6 +506,20 @@ authenticate_samba_server (GtkButton *button,
}
}
+static gboolean
+stack_key_press_cb (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data)
+{
+ PpNewPrinterDialog *dialog = (PpNewPrinterDialog *) user_data;
+ PpNewPrinterDialogPrivate *priv = dialog->priv;
+
+ gtk_widget_grab_focus (WID ("search-entry"));
+ gtk_main_do_event (event);
+
+ return TRUE;
+}
+
static void
pp_new_printer_dialog_init (PpNewPrinterDialog *dialog)
{
@@ -556,6 +570,8 @@ pp_new_printer_dialog_init (PpNewPrinterDialog *dialog)
widget = WID ("unlock-button");
g_signal_connect (widget, "clicked", G_CALLBACK (authenticate_samba_server), dialog);
+ g_signal_connect (WID ("stack"), "key-press-event", G_CALLBACK (stack_key_press_cb), dialog);
+
/* Authentication form widgets */
g_signal_connect (WID ("username-entry"), "changed", G_CALLBACK (auth_entries_changed), dialog);
g_signal_connect (WID ("password-entry"), "changed", G_CALLBACK (auth_entries_changed), dialog);