Blame SOURCES/change-device-name-with-enter-key.patch

6395d0
From 8eab500540c1631dbdc760bca617a581e2969ed6 Mon Sep 17 00:00:00 2001
6395d0
From: Felipe Borges <felipeborges@gnome.org>
6395d0
Date: Mon, 1 Aug 2022 10:57:07 +0200
6395d0
Subject: [PATCH] info-overview: Allow changing "Device Name" by pressing
6395d0
 "Enter"
6395d0
6395d0
The hostname/device name dialog has only a GtkEntry. So a user
6395d0
navigating with only a keyboard should be able to apply their
6395d0
changes by pressing "Enter".
6395d0
---
6395d0
 panels/info-overview/cc-info-overview-panel.c | 34 +++++++++++++++++++
6395d0
 .../info-overview/cc-info-overview-panel.ui   |  1 +
6395d0
 2 files changed, 35 insertions(+)
6395d0
6395d0
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
6395d0
index a2cb70755..e8881d70d 100644
6395d0
--- a/panels/info-overview/cc-info-overview-panel.c
6395d0
+++ b/panels/info-overview/cc-info-overview-panel.c
6395d0
@@ -818,6 +818,38 @@ on_device_name_entry_changed (CcInfoOverviewPanel *self)
6395d0
                             g_strcmp0 (current_hostname, new_hostname) != 0);
6395d0
 }
6395d0
 
6395d0
+static void
6395d0
+update_device_name (CcInfoOverviewPanel *self)
6395d0
+{
6395d0
+  const gchar *hostname;
6395d0
+
6395d0
+  /* We simply change the CcHostnameEntry text. CcHostnameEntry
6395d0
+   * listens to changes and updates hostname on change.
6395d0
+   */
6395d0
+  hostname = gtk_entry_get_text (GTK_ENTRY (self->device_name_entry));
6395d0
+  gtk_entry_set_text (GTK_ENTRY (self->hostname_entry), hostname);
6395d0
+}
6395d0
+
6395d0
+static void
6395d0
+on_hostname_editor_dialog_response_cb (GtkDialog           *dialog,
6395d0
+                                       gint                 response,
6395d0
+                                       CcInfoOverviewPanel *self)
6395d0
+{
6395d0
+  if (response == GTK_RESPONSE_APPLY)
6395d0
+    {
6395d0
+      update_device_name (self);
6395d0
+    }
6395d0
+
6395d0
+  gtk_window_close (GTK_WINDOW (dialog));
6395d0
+}
6395d0
+
6395d0
+static void
6395d0
+on_device_name_entry_activated_cb (CcInfoOverviewPanel *self)
6395d0
+{
6395d0
+  update_device_name (self);
6395d0
+  gtk_window_close (GTK_WINDOW (self->hostname_editor));
6395d0
+}
6395d0
+
6395d0
 static void
6395d0
 open_hostname_edit_dialog (CcInfoOverviewPanel *self)
6395d0
 {
6395d0
@@ -906,6 +938,8 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass)
6395d0
 
6395d0
   gtk_widget_class_bind_template_callback (widget_class, cc_info_panel_row_activated_cb);
6395d0
   gtk_widget_class_bind_template_callback (widget_class, on_device_name_entry_changed);
6395d0
+  gtk_widget_class_bind_template_callback (widget_class, on_device_name_entry_activated_cb);
6395d0
+  gtk_widget_class_bind_template_callback (widget_class, on_hostname_editor_dialog_response_cb);
6395d0
 
6395d0
   g_type_ensure (CC_TYPE_LIST_ROW);
6395d0
   g_type_ensure (CC_TYPE_HOSTNAME_ENTRY);
6395d0
diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui
6395d0
index 2f5d3cf8b..adf3b5409 100644
6395d0
--- a/panels/info-overview/cc-info-overview-panel.ui
6395d0
+++ b/panels/info-overview/cc-info-overview-panel.ui
6395d0
@@ -219,6 +219,7 @@
6395d0
           <object class="GtkEntry" id="device_name_entry">
6395d0
             <property name="visible">True</property>
6395d0
             <signal name="changed" handler="on_device_name_entry_changed" swapped="yes"/>
6395d0
+            <signal name="activate" handler="on_device_name_entry_activated_cb" swapped="yes" />
6395d0
           </object>
6395d0
         </child>
6395d0
       </object>
6395d0
-- 
6395d0
2.34.1
6395d0