diff --git a/gnome-control-center-disable-error-message-for-NM.patch b/gnome-control-center-disable-error-message-for-NM.patch
index feb87cd..2f8139d 100644
--- a/gnome-control-center-disable-error-message-for-NM.patch
+++ b/gnome-control-center-disable-error-message-for-NM.patch
@@ -10,11 +10,11 @@ Subject: [PATCH] add error messages when wicked is used as network manager
tests/meson.build | 3 +++
4 files changed, 102 insertions(+), 2 deletions(-)
-diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
-index 01b164ea0..d32e94d09 100644
---- a/panels/network/cc-network-panel.c
-+++ b/panels/network/cc-network-panel.c
-@@ -643,10 +643,24 @@ static void
+Index: gnome-control-center-43.1/panels/network/cc-network-panel.c
+===================================================================
+--- gnome-control-center-43.1.orig/panels/network/cc-network-panel.c
++++ gnome-control-center-43.1/panels/network/cc-network-panel.c
+@@ -646,10 +646,24 @@ static void
panel_check_network_manager_version (CcNetworkPanel *self)
{
const gchar *version;
@@ -37,31 +37,23 @@ index 01b164ea0..d32e94d09 100644
version = nm_client_get_version (self->client);
- if (version == NULL) {
+ if (version == NULL && g_strcmp0 (state, "inactive") == 0) {
- GtkWidget *box;
- GtkWidget *label;
- g_autofree gchar *markup = NULL;
-@@ -671,10 +685,31 @@ panel_check_network_manager_version (CcNetworkPanel *self)
- gtk_widget_set_valign (label, GTK_ALIGN_START);
- gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
+ GtkWidget *status_page;
-+ gtk_widget_show_all (box);
+ status_page = adw_status_page_new ();
+@@ -661,9 +675,23 @@ panel_check_network_manager_version (CcN
+ _("NetworkManager needs to be running to view or make "
+ "connections. Contact a system administrator or the "
+ "software vendor."));
+ } else if (version == NULL && g_strcmp0 (state, "active") == 0) {
-+ GtkWidget *box;
-+ GtkWidget *label;
++ GtkWidget *status_page;
+
-+ gtk_container_remove (GTK_CONTAINER (self), gtk_bin_get_child (GTK_BIN (self)));
++ status_page = adw_status_page_new ();
++ cc_panel_set_content (CC_PANEL (self), status_page);
+
-+ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-+ gtk_box_set_homogeneous (GTK_BOX (box), TRUE);
-+ gtk_widget_set_vexpand (box, TRUE);
-+ gtk_container_add (GTK_CONTAINER (self), box);
-+
-+ label = gtk_label_new (_("Please use YaST2 to configure your network."));
-+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-+ gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
-+ gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
-+
- gtk_widget_show_all (box);
++ adw_status_page_set_icon_name (ADW_STATUS_PAGE (status_page), "network-error-symbolic");
++ adw_status_page_set_title (ADW_STATUS_PAGE (status_page), _("Wicked is running"));
++ adw_status_page_set_description (ADW_STATUS_PAGE (status_page),
++ _("Please use YaST2 to configure your network."));
} else {
manager_running (self);
}
@@ -72,11 +64,22 @@ index 01b164ea0..d32e94d09 100644
}
static void
-diff --git a/panels/network/cc-wifi-panel.c b/panels/network/cc-wifi-panel.c
-index 9ca6e6ee5..c4622e684 100644
---- a/panels/network/cc-wifi-panel.c
-+++ b/panels/network/cc-wifi-panel.c
-@@ -439,21 +439,41 @@ static void
+Index: gnome-control-center-43.1/panels/network/cc-wifi-panel.c
+===================================================================
+--- gnome-control-center-43.1.orig/panels/network/cc-wifi-panel.c
++++ gnome-control-center-43.1/panels/network/cc-wifi-panel.c
+@@ -425,8 +425,8 @@ remove_wifi_device (CcWifiPanel *self,
+ }
+
+ /* Disconnect the signal to prevent assertion crash */
+- g_signal_handlers_disconnect_by_func (device,
+- G_CALLBACK (wifi_panel_update_qr_image_cb),
++ g_signal_handlers_disconnect_by_func (device,
++ G_CALLBACK (wifi_panel_update_qr_image_cb),
+ self);
+
+ /* Destroy all stack pages related to this device */
+@@ -444,21 +444,41 @@ static void
check_main_stack_page (CcWifiPanel *self)
{
const gchar *nm_version;
@@ -119,63 +122,69 @@ index 9ca6e6ee5..c4622e684 100644
}
static void
-diff --git a/panels/network/cc-wifi-panel.ui b/panels/network/cc-wifi-panel.ui
-index 2ac7570f9..5a53f9a57 100644
---- a/panels/network/cc-wifi-panel.ui
-+++ b/panels/network/cc-wifi-panel.ui
-@@ -318,6 +318,48 @@
- nm-not-running
-
+Index: gnome-control-center-43.1/panels/network/cc-wifi-panel.ui
+===================================================================
+--- gnome-control-center-43.1.orig/panels/network/cc-wifi-panel.ui
++++ gnome-control-center-43.1/panels/network/cc-wifi-panel.ui
+@@ -311,10 +311,53 @@
+
-+
+
+
+
-+
-+
++
+ wicked-running
-+
++
++
++ True
++ True
++ True
++ False
++ center
++ center
++ vertical
++ 18
++ 18
++ 18
++ 18
++
++
++ True
++ False
++ face-sad-symbolic
++ 128
++
++
++
++
++
++ True
++ False
++ True
++ Please use YaST2 to configure your network.
++
++
++
++
++
++
++
++
+
++
-diff --git a/tests/meson.build b/tests/meson.build
-index d4fe361ef..da3bd104d 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
+-
+
+
+
+Index: gnome-control-center-43.1/tests/meson.build
+===================================================================
+--- gnome-control-center-43.1.orig/tests/meson.build
++++ gnome-control-center-43.1/tests/meson.build
@@ -1,8 +1,11 @@
subdir('common')
#subdir('datetime')
@@ -188,6 +197,3 @@ index d4fe361ef..da3bd104d 100644
subdir('interactive-panels')
---
-2.31.1
-
diff --git a/gnome-control-center-fix-ws-sea-pass-toggle.patch b/gnome-control-center-fix-ws-sea-pass-toggle.patch
new file mode 100644
index 0000000..30e5bfd
--- /dev/null
+++ b/gnome-control-center-fix-ws-sea-pass-toggle.patch
@@ -0,0 +1,28 @@
+From d6d05abeba9dffc4840e52d24dbef871c97ae38c Mon Sep 17 00:00:00 2001
+From: Alynx Zhou
+Date: Thu, 1 Dec 2022 11:17:38 +0800
+Subject: [PATCH] network: Fix wrong signal of SEA password visibility toggle
+
+Wrong pointer is used because of missing `_swapped`.
+---
+ panels/network/wireless-security/ws-sae.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/panels/network/wireless-security/ws-sae.c b/panels/network/wireless-security/ws-sae.c
+index 83fe0c793..c9e4e5040 100644
+--- a/panels/network/wireless-security/ws-sae.c
++++ b/panels/network/wireless-security/ws-sae.c
+@@ -212,8 +212,8 @@ ws_sae_new (NMConnection *connection)
+ (HelperSecretFunc) nm_setting_wireless_security_get_psk);
+ }
+
+- g_signal_connect (self->show_password_check, "toggled",
+- G_CALLBACK (show_toggled_cb), self);
++ g_signal_connect_swapped (self->show_password_check, "toggled",
++ G_CALLBACK (show_toggled_cb), self);
+
+ /* Hide WPA/RSN for now since this can be autodetected by NM and the
+ * supplicant when connecting to the AP.
+--
+GitLab
+
diff --git a/gnome-control-center-network-use-AdwStatusPage.patch b/gnome-control-center-network-use-AdwStatusPage.patch
new file mode 100644
index 0000000..e5bde73
--- /dev/null
+++ b/gnome-control-center-network-use-AdwStatusPage.patch
@@ -0,0 +1,58 @@
+From 2b3de0112438c45372f872d0fd967ad2d907af6e Mon Sep 17 00:00:00 2001
+From: Mohammed Sadiq
+Date: Tue, 1 Nov 2022 17:41:39 +0530
+Subject: [PATCH] network-panel: Use AdwStatusPage to show NetworkManager error
+
+This commit also fixes missing header bar when the error is shown
+---
+ panels/network/cc-network-panel.c | 34 ++++++++++---------------------
+ 1 file changed, 11 insertions(+), 23 deletions(-)
+
+diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
+index e80fd4a4e..24a6c6f8b 100644
+--- a/panels/network/cc-network-panel.c
++++ b/panels/network/cc-network-panel.c
+@@ -658,29 +658,17 @@ panel_check_network_manager_version (CcNetworkPanel *self)
+ /* parse running version */
+ version = nm_client_get_version (self->client);
+ if (version == NULL) {
+- GtkWidget *box;
+- GtkWidget *label;
+- g_autofree gchar *markup = NULL;
+-
+- box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
+- gtk_box_set_homogeneous (GTK_BOX (box), TRUE);
+- gtk_widget_set_vexpand (box, TRUE);
+- adw_bin_set_child (ADW_BIN (self), box);
+-
+- label = gtk_label_new (_("Oops, something has gone wrong. Please contact your software vendor."));
+- gtk_widget_set_vexpand (label, TRUE);
+- gtk_label_set_wrap (GTK_LABEL (label), TRUE);
+- gtk_widget_set_valign (label, GTK_ALIGN_END);
+- gtk_box_append (GTK_BOX (box), label);
+-
+- markup = g_strdup_printf ("%s",
+- _("NetworkManager needs to be running."));
+- label = gtk_label_new (NULL);
+- gtk_widget_set_vexpand (label, TRUE);
+- gtk_label_set_markup (GTK_LABEL (label), markup);
+- gtk_label_set_wrap (GTK_LABEL (label), TRUE);
+- gtk_widget_set_valign (label, GTK_ALIGN_START);
+- gtk_box_append (GTK_BOX (box), label);
++ GtkWidget *status_page;
++
++ status_page = adw_status_page_new ();
++ cc_panel_set_content (CC_PANEL (self), status_page);
++
++ adw_status_page_set_icon_name (ADW_STATUS_PAGE (status_page), "network-error-symbolic");
++ adw_status_page_set_title (ADW_STATUS_PAGE (status_page), _("Can’t Connect to Network"));
++ adw_status_page_set_description (ADW_STATUS_PAGE (status_page),
++ _("NetworkManager needs to be running to view or make "
++ "connections. Contact a system administrator or the "
++ "software vendor."));
+ } else {
+ manager_running (self);
+ }
+--
+2.38.1
+
diff --git a/gnome-control-center.changes b/gnome-control-center.changes
index e8fac04..8db7bc4 100644
--- a/gnome-control-center.changes
+++ b/gnome-control-center.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Mon Dec 19 06:39:59 UTC 2022 - Jonathan Kang
+
+- Modify gnome-control-center-disable-error-message-for-NM.patch:
+ fix wifi panel(bsc#1206233).
+
+-------------------------------------------------------------------
+Thu Dec 6 09:00:52 UTC 2022 - Jonathan Kang
+
+- Rebase gnome-control-center-disable-error-message-for-NM.patch.
+- Add gnome-control-center-network-use-AdwStatusPage.patch:
+ network-panel: Use AdwStatusPage to show NetworkManager error.
+ This is needed by the above rebased patch
+ (glgo#GNOME/gnome-control-center/commit/2b3de01124).
+
+-------------------------------------------------------------------
+Tue Dec 6 04:31:50 UTC 2022 - Alynx Zhou
+
+- Add gnome-control-center-fix-ws-sea-pass-toggle.patch: Fix crash
+ when user clicking password visibility toggle in Security page
+ when method is WPA3 Personal
+ (glgo#GNOME/gnome-control-center!1520).
+
-------------------------------------------------------------------
Tue Oct 18 08:00:32 UTC 2022 - Bjørn Lie
diff --git a/gnome-control-center.spec b/gnome-control-center.spec
index b130c86..72410a6 100644
--- a/gnome-control-center.spec
+++ b/gnome-control-center.spec
@@ -35,8 +35,12 @@ URL: https://apps.gnome.org/app/org.gnome.Settings
Source0: https://download.gnome.org/sources/gnome-control-center/43/%{name}-%{version}.tar.xz
Source99: %{name}-rpmlintrc
-# PATCH-NEEDS-REBASE gnome-control-center-disable-error-message-for-NM.patch bsc#989801 sckang@suse.com -- network: Improve the check for whether NM or wicked is running Was:PATCH-FIX-OPENSUSE
-Patch0: gnome-control-center-disable-error-message-for-NM.patch
+# PATCH-FIX-UPSTREAM gnome-control-center-network-use-AdwStatusPage.patch glgo#GNOME/gnome-contorl-center/commit/2b3de01124 sckang@suse.com network-panel: Use AdwStatusPage to show NetworkManager error.
+Patch0: gnome-control-center-network-use-AdwStatusPage.patch
+# PATCH-FIX-OPENSUSE gnome-control-center-disable-error-message-for-NM.patch bsc#989801 sckang@suse.com -- network: Improve the check for whether NM or wicked is running Was:PATCH-FIX-OPENSUSE
+Patch1: gnome-control-center-disable-error-message-for-NM.patch
+# PATCH-FIX-UPSTREAM gnome-control-center-fix-ws-sea-pass-toggle.patch glgo#GNOME/gnome-control-center!1520 -- network: Fix wrong signal of SEA password visibility toggle
+Patch2: gnome-control-center-fix-ws-sea-pass-toggle.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.
@@ -182,8 +186,9 @@ GNOME control center.
%prep
%setup -q
-# Patch needs rebase
-#%%patch0 -p1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
# patches for Leap >= 15 plus SLE >= 15, but not TW
%if 0%{?sle_version} >= 150000