[gnome-control-center/change-hostname-on-activate-signal: 2/2] info-overview: Allow changing "Device Name" by pressing "Enter"
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/change-hostname-on-activate-signal: 2/2] info-overview: Allow changing "Device Name" by pressing "Enter"
- Date: Mon, 7 Mar 2022 17:02:23 +0000 (UTC)
commit b094a0b3921ae8a324d52d21fb6aea3c338ae68a
Author: Felipe Borges <felipeborges gnome org>
Date: Mon Mar 7 17:01:02 2022 +0100
info-overview: Allow changing "Device Name" by pressing "Enter"
The hostname/device name dialog has only a GtkEntry. So a user
navigating with only a keyboard should be able to apply their
changes by pressing "Enter".
panels/info-overview/cc-info-overview-panel.c | 28 +++++++++++++++++++-------
panels/info-overview/cc-info-overview-panel.ui | 1 +
2 files changed, 22 insertions(+), 7 deletions(-)
---
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
index 274a3c644..b348c0fc6 100644
--- a/panels/info-overview/cc-info-overview-panel.c
+++ b/panels/info-overview/cc-info-overview-panel.c
@@ -871,6 +871,18 @@ on_device_name_entry_changed (CcInfoOverviewPanel *self)
g_strcmp0 (current_hostname, new_hostname) != 0);
}
+static void
+update_device_name (CcInfoOverviewPanel *self)
+{
+ const gchar *hostname;
+
+ /* We simply change the CcHostnameEntry text. CcHostnameEntry
+ * listens to changes and updates hostname on change.
+ */
+ hostname = gtk_editable_get_text (GTK_EDITABLE (self->device_name_entry));
+ gtk_editable_set_text (GTK_EDITABLE (self->hostname_entry), hostname);
+}
+
static void
on_hostname_editor_dialog_response_cb (GtkDialog *dialog,
gint response,
@@ -878,18 +890,19 @@ on_hostname_editor_dialog_response_cb (GtkDialog *dialog,
{
if (response == GTK_RESPONSE_APPLY)
{
- const gchar *hostname;
-
- /* We simply change the CcHostnameEntry text. CcHostnameEntry
- * listens to changes and updates hostname on change.
- */
- hostname = gtk_editable_get_text (GTK_EDITABLE (self->device_name_entry));
- gtk_editable_set_text (GTK_EDITABLE (self->hostname_entry), hostname);
+ update_device_name (self);
}
gtk_window_close (GTK_WINDOW (dialog));
}
+static void
+on_device_name_entry_activated_cb (CcInfoOverviewPanel *self)
+{
+ update_device_name (self);
+ gtk_window_close (GTK_WINDOW (self->hostname_editor));
+}
+
static void
open_hostname_edit_dialog (CcInfoOverviewPanel *self)
{
@@ -991,6 +1004,7 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass)
gtk_widget_class_bind_template_callback (widget_class, cc_info_panel_row_activated_cb);
gtk_widget_class_bind_template_callback (widget_class, on_device_name_entry_changed);
+ gtk_widget_class_bind_template_callback (widget_class, on_device_name_entry_activated_cb);
gtk_widget_class_bind_template_callback (widget_class, on_hostname_editor_dialog_response_cb);
g_type_ensure (CC_TYPE_LIST_ROW);
diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui
index d7cacbc4d..5bac29f50 100644
--- a/panels/info-overview/cc-info-overview-panel.ui
+++ b/panels/info-overview/cc-info-overview-panel.ui
@@ -177,6 +177,7 @@
<child>
<object class="GtkEntry" id="device_name_entry">
<signal name="changed" handler="on_device_name_entry_changed" swapped="yes"/>
+ <signal name="activate" handler="on_device_name_entry_activated_cb" swapped="yes" />
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]