diff --git a/gnome-control-center-network-fix-nmce-popup.patch b/gnome-control-center-network-fix-nmce-popup.patch new file mode 100644 index 0000000..88abc20 --- /dev/null +++ b/gnome-control-center-network-fix-nmce-popup.patch @@ -0,0 +1,85 @@ +From 2a7922de9d126a06441e954e6bc406f6da4fc3e8 Mon Sep 17 00:00:00 2001 +From: Jonathan Kang +Date: Mon, 9 Oct 2023 09:14:03 +0800 +Subject: [PATCH] network-connection-editor: Close the editor when + nm-connection-editor exits + +Previously, when editing a connection that doesn't have native editor +support, nm-connection-editor is spawned to do the work. But after +closing nm-connection-editor, an empty editor dialog still exists. + +Fix that in this commit. +--- + .../connection-editor/net-connection-editor.c | 40 ++++++++++++++++--- + 1 file changed, 35 insertions(+), 5 deletions(-) + +diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c +index f97658405..ec5a905a5 100644 +--- a/panels/network/connection-editor/net-connection-editor.c ++++ b/panels/network/connection-editor/net-connection-editor.c +@@ -355,20 +355,48 @@ net_connection_editor_class_init (NetConnectionEditorClass *class) + gtk_widget_class_bind_template_callback (widget_class, apply_clicked_cb); + } + ++static void ++nm_connection_editor_watch_cb (GPid pid, ++ gint status, ++ gpointer user_data) ++{ ++ g_debug ("Child %d" G_PID_FORMAT " exited %s", pid, ++ g_spawn_check_wait_status (status, NULL) ? "normally" : "abnormally"); ++ ++ g_spawn_close_pid (pid); ++ /* Close the dialog when nm-connection-editor exits. */ ++ gtk_window_destroy (GTK_WINDOW (user_data)); ++} ++ + static void + net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type) + { +- g_autofree gchar *cmdline = NULL; + g_autoptr(GError) error = NULL; ++ g_autoptr(GStrvBuilder) builder = NULL; ++ g_auto(GStrv) argv = NULL; ++ GPid child_pid; ++ ++ builder = g_strv_builder_new (); ++ g_strv_builder_add (builder, "nm-connection-editor"); + + if (self->is_new_connection) { +- cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type); ++ g_autofree gchar *type_str = NULL; ++ ++ type_str = g_strdup_printf ("--type=%s", type); ++ g_strv_builder_add (builder, type_str); ++ g_strv_builder_add (builder, "--create"); + } else { +- cmdline = g_strdup_printf ("nm-connection-editor --edit='%s'", +- nm_connection_get_uuid (self->connection)); ++ g_autofree gchar *edit_str = NULL; ++ ++ edit_str = g_strdup_printf ("--edit=%s", nm_connection_get_uuid (self->connection)); ++ g_strv_builder_add (builder, edit_str); + } + +- g_spawn_command_line_async (cmdline, &error); ++ g_strv_builder_add (builder, NULL); ++ argv = g_strv_builder_end (builder); ++ ++ g_spawn_async_with_pipes (NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, ++ NULL, NULL, &child_pid, NULL, NULL, NULL, &error); + + if (error) { + AdwToast *toast; +@@ -378,6 +406,8 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type) + toast = adw_toast_new (message); + + adw_toast_overlay_add_toast (self->toast_overlay, toast); ++ } else { ++ g_child_watch_add (child_pid, nm_connection_editor_watch_cb, self); + } + + g_signal_emit (self, signals[DONE], 0, FALSE); +-- +2.42.0 + diff --git a/gnome-control-center.changes b/gnome-control-center.changes index 76c7cec..0637888 100644 --- a/gnome-control-center.changes +++ b/gnome-control-center.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Oct 12 08:16:55 UTC 2023 - Jonathan Kang + +- Add gnome-control-center-network-fix-nmce-popup.patch: + network-connection-editor: Close the editor when nm-connection-editor + exits(bsc#1208193 glgo#GNOME/gnome-control-center!1956). + ------------------------------------------------------------------- Tue Oct 03 14:03:43 UTC 2023 - bjorn.lie@gmail.com diff --git a/gnome-control-center.spec b/gnome-control-center.spec index e756350..d9d6d29 100644 --- a/gnome-control-center.spec +++ b/gnome-control-center.spec @@ -39,6 +39,8 @@ Source99: %{name}-rpmlintrc Patch1: gnome-control-center-disable-error-message-for-NM.patch # PATCH-FIX-UPSTREAM gnome-control-center-add-user-button.patch bsc#1215556 glgo#GNOME/Settings!1927 xwang@suse.com -- Show add user button Patch2: gnome-control-center-add-user-button.patch +# PATCH-FIX-UPSTREAM gnome-control-center-network-fix-nmce-popup.patch bsc#1208193 glgo#GNOME/gnome-control-center!1956 sckang@suse.com -- network-connection-editor: Close the editor when nm-connection-editor exits +Patch3: gnome-control-center-network-fix-nmce-popup.patch ### patches for Leap >= 15 plus SLE >= 15, but not TW # PATCH-FEATURE-SLE gnome-control-center-info-never-use-gnome-software.patch bsc#999336 fezhang@suse.com -- info: Never search for gnome-software as an option when checking for updates on SLE and Leap 42.2, because we use gpk-update-viewer. @@ -185,6 +187,7 @@ GNOME control center. %setup -q #patch1 -p1 %patch2 -p1 +%patch3 -p1 # patches for Leap >= 15 plus SLE >= 15, but not TW %if 0%{?sle_version} >= 150000