diff --git a/panels/user-accounts/data/account-fingerprint.ui b/panels/user-accounts/data/account-fingerprint.ui index 87e4a850f..0c8a706d3 100644 --- a/panels/user-accounts/data/account-fingerprint.ui +++ b/panels/user-accounts/data/account-fingerprint.ui @@ -86,7 +86,7 @@ vertical - Right index finger + _Right index finger True True False @@ -102,7 +102,7 @@ - Left index finger + _Left index finger True True False @@ -123,7 +123,7 @@ True - Other finger: + _Other finger: True False True diff --git a/panels/user-accounts/data/language-chooser.ui b/panels/user-accounts/data/language-chooser.ui index f5333022f..56ed8be31 100644 --- a/panels/user-accounts/data/language-chooser.ui +++ b/panels/user-accounts/data/language-chooser.ui @@ -50,7 +50,8 @@ end - Cancel + _Cancel + True True True True @@ -63,7 +64,8 @@ - Select + _Select + True True True True diff --git a/panels/user-accounts/data/user-accounts-dialog.ui b/panels/user-accounts/data/user-accounts-dialog.ui index ba3f72a84..079e83de9 100644 --- a/panels/user-accounts/data/user-accounts-dialog.ui +++ b/panels/user-accounts/data/user-accounts-dialog.ui @@ -187,7 +187,9 @@ True 1 - Account type + Account _type + True + account-type-combo @@ -243,7 +245,9 @@ True 1 - Password + _Password + True + account-password-button @@ -271,7 +275,9 @@ True 1 - Automatic Login + A_utomatic Login + True + autologin-switch @@ -312,7 +318,9 @@ True 1 - Fingerprint Login + _Fingerprint Login + True + account-fingerprint-button @@ -385,7 +393,9 @@ True 1 - Language + _Language + True + account-language-combo diff --git a/panels/user-accounts/um-editable-button.c b/panels/user-accounts/um-editable-button.c index 321245999..5668bea87 100644 --- a/panels/user-accounts/um-editable-button.c +++ b/panels/user-accounts/um-editable-button.c @@ -51,6 +51,7 @@ enum { enum { START_EDITING, + ACTIVATE, LAST_SIGNAL }; @@ -268,12 +269,16 @@ um_editable_button_finalize (GObject *object) G_OBJECT_CLASS (um_editable_button_parent_class)->finalize (object); } +static void um_editable_button_activate (UmEditableButton *button); + static void um_editable_button_class_init (UmEditableButtonClass *class) { GObjectClass *object_class; + GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS (class); + widget_class = GTK_WIDGET_CLASS (class); object_class->set_property = um_editable_button_set_property; object_class->get_property = um_editable_button_get_property; @@ -287,6 +292,17 @@ um_editable_button_class_init (UmEditableButtonClass *class) NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + signals[ACTIVATE] = + g_signal_new ("activate", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (UmEditableButtonClass, activate), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + widget_class->activate_signal = signals[ACTIVATE]; + class->activate = um_editable_button_activate; + g_object_class_install_property (object_class, PROP_TEXT, g_param_spec_string ("text", @@ -333,6 +349,16 @@ start_editing (UmEditableButton *button) g_signal_emit (button, signals[START_EDITING], 0); } +static void +um_editable_button_activate (UmEditableButton *button) +{ + UmEditableButtonPrivate *priv = button->priv; + + if (priv->editable) { + gtk_widget_grab_focus (GTK_WIDGET (button->priv->button)); + } +} + static void button_clicked (GtkWidget *widget, UmEditableButton *button) diff --git a/panels/user-accounts/um-editable-button.h b/panels/user-accounts/um-editable-button.h index 36af62212..455746db2 100644 --- a/panels/user-accounts/um-editable-button.h +++ b/panels/user-accounts/um-editable-button.h @@ -50,6 +50,7 @@ struct _UmEditableButtonClass GtkAlignmentClass parent_class; void (* start_editing) (UmEditableButton *button); + void (* activate) (UmEditableButton *button); }; GType um_editable_button_get_type (void) G_GNUC_CONST; diff --git a/panels/user-accounts/um-editable-combo.c b/panels/user-accounts/um-editable-combo.c index e1764bdd4..e1f77510a 100644 --- a/panels/user-accounts/um-editable-combo.c +++ b/panels/user-accounts/um-editable-combo.c @@ -47,6 +47,7 @@ enum { enum { EDITING_DONE, + ACTIVATE, LAST_SIGNAL }; @@ -233,12 +234,16 @@ um_editable_combo_get_property (GObject *object, } } +static void um_editable_combo_activate (UmEditableCombo *combo); + static void um_editable_combo_class_init (UmEditableComboClass *class) { GObjectClass *object_class; + GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS (class); + widget_class = GTK_WIDGET_CLASS (class); object_class->set_property = um_editable_combo_set_property; object_class->get_property = um_editable_combo_get_property; @@ -251,6 +256,16 @@ um_editable_combo_class_init (UmEditableComboClass *class) NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + signals[ACTIVATE] = + g_signal_new ("activate", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (UmEditableComboClass, activate), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + widget_class->activate_signal = signals[ACTIVATE]; + class->activate = um_editable_combo_activate; g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", @@ -299,6 +314,15 @@ cancel_editing (UmEditableCombo *combo) gtk_notebook_set_current_page (combo->priv->notebook, 1); } +static void +um_editable_combo_activate (UmEditableCombo *combo) +{ + if (combo->priv->editable) { + gtk_notebook_set_current_page (combo->priv->notebook, 2); + gtk_widget_grab_focus (GTK_WIDGET (combo->priv->combo)); + } +} + static void button_clicked (GtkWidget *widget, UmEditableCombo *combo) diff --git a/panels/user-accounts/um-editable-combo.h b/panels/user-accounts/um-editable-combo.h index 0d4e4a68e..97237f90f 100644 --- a/panels/user-accounts/um-editable-combo.h +++ b/panels/user-accounts/um-editable-combo.h @@ -50,6 +50,7 @@ struct _UmEditableComboClass GtkAlignmentClass parent_class; void (* editing_done) (UmEditableCombo *combo); + void (* activate) (UmEditableCombo *combo); }; GType um_editable_combo_get_type (void) G_GNUC_CONST;