diff --git a/SOURCES/0001-network-Populate-AP-list-from-idle-handler.patch b/SOURCES/0001-network-Populate-AP-list-from-idle-handler.patch new file mode 100644 index 0000000..f323194 --- /dev/null +++ b/SOURCES/0001-network-Populate-AP-list-from-idle-handler.patch @@ -0,0 +1,73 @@ +From 1a7953a72419342437c7c6ca90cccc31f2658757 Mon Sep 17 00:00:00 2001 +From: Benjamin Berg +Date: Wed, 28 Jul 2021 22:16:21 +0200 +Subject: [PATCH 1/5] network: Populate AP list from idle handler + +Doing this should prevent the UI from becoming completely unusable as +updates of the AP list should be batched up rather than processed +sequentially. +--- + panels/network/net-device-wifi.c | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c +index 313e9ab8c..1f0e4832e 100644 +--- a/panels/network/net-device-wifi.c ++++ b/panels/network/net-device-wifi.c +@@ -64,6 +64,7 @@ struct _NetDeviceWifiPrivate + gchar *selected_connection_id; + gchar *selected_ap_id; + guint scan_id; ++ guint populate_ap_list_idle_id; + GCancellable *cancellable; + }; + +@@ -1619,6 +1620,7 @@ net_device_wifi_finalize (GObject *object) + g_clear_object (&priv->cancellable); + } + disable_scan_timeout (device_wifi); ++ g_clear_handle_id (&priv->populate_ap_list_idle_id, g_source_remove); + + g_clear_pointer (&priv->details_dialog, gtk_widget_destroy); + g_object_unref (priv->builder); +@@ -2145,8 +2147,8 @@ open_history (NetDeviceWifi *device_wifi) + gtk_window_present (GTK_WINDOW (dialog)); + } + +-static void +-populate_ap_list (NetDeviceWifi *device_wifi) ++static gboolean ++populate_ap_list_idle (NetDeviceWifi *device_wifi) + { + GtkWidget *list; + GtkSizeGroup *rows; +@@ -2162,6 +2164,8 @@ populate_ap_list (NetDeviceWifi *device_wifi) + GtkWidget *button; + GList *children, *child; + ++ device_wifi->priv->populate_ap_list_idle_id = 0; ++ + list = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder, "listbox")); + + children = gtk_container_get_children (GTK_CONTAINER (list)); +@@ -2217,6 +2221,17 @@ populate_ap_list (NetDeviceWifi *device_wifi) + + g_slist_free (connections); + g_ptr_array_free (aps_unique, TRUE); ++ ++ return G_SOURCE_REMOVE; ++} ++ ++static void ++populate_ap_list (NetDeviceWifi *device_wifi) ++{ ++ if (device_wifi->priv->populate_ap_list_idle_id != 0) ++ return; ++ ++ device_wifi->priv->populate_ap_list_idle_id = g_idle_add ((GSourceFunc) populate_ap_list_idle, device_wifi); + } + + static void +-- +2.31.1 + diff --git a/SPECS/gnome-control-center.spec b/SPECS/gnome-control-center.spec index 558e053..54e029a 100644 --- a/SPECS/gnome-control-center.spec +++ b/SPECS/gnome-control-center.spec @@ -11,7 +11,7 @@ Name: gnome-control-center Version: 3.28.2 -Release: 28%{?dist} +Release: 29%{?dist} Summary: Utilities to configure the GNOME desktop License: GPLv2+ and CC-BY-SA @@ -64,6 +64,9 @@ Patch25: printers-Update-entries.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1876291 Patch26: Update-translations.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2024707 +Patch27: 0001-network-Populate-AP-list-from-idle-handler.patch + BuildRequires: chrpath BuildRequires: cups-devel BuildRequires: desktop-file-utils @@ -236,6 +239,10 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gnome-control-center %dir %{_datadir}/gnome/wm-properties %changelog +* Tue Jan 19 2022 Benjamin Berg - 3.28.2-29 +- Push AP list update into idle handler + Resolves: #2024707 + * Fri Sep 10 2021 Kalev Lember - 3.28.2-28 - Update pt_BR translations - Resolves: #1978612