# HG changeset patch
# Node ID 3f8e79cb47c1
# Parent  49d29706f311
diff --git a/pidgin/prefs/pidginnetworkprefs.c b/pidgin/prefs/pidginnetworkprefs.c
--- a/pidgin/prefs/pidginnetworkprefs.c
+++ b/pidgin/prefs/pidginnetworkprefs.c
@@ -136,7 +136,7 @@ auto_ip_button_clicked_cb(GtkWidget *but
 	}
 
 	auto_ip_text = g_strdup_printf(_("Use _automatically detected IP address: %s"), ip);
-	gtk_button_set_label(GTK_BUTTON(button), auto_ip_text);
+	gtk_check_button_set_label(GTK_CHECK_BUTTON(button), auto_ip_text);
 	g_free(auto_ip_text);
 	g_list_free_full(list, g_free);
 }
diff --git a/pidgin/prefs/pidginprefs.c b/pidgin/prefs/pidginprefs.c
--- a/pidgin/prefs/pidginprefs.c
+++ b/pidgin/prefs/pidginprefs.c
@@ -370,7 +370,7 @@ static void
 set_bool_pref(GtkWidget *w, const char *key)
 {
 	purple_prefs_set_bool(key,
-			gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
+			gtk_check_button_get_active(GTK_CHECK_BUTTON(w)));
 }
 
 GtkWidget *
@@ -379,7 +379,7 @@ pidgin_prefs_checkbox(const char *text, 
 	GtkWidget *button;
 
 	button = gtk_check_button_new_with_mnemonic(text);
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
+	gtk_check_button_set_active(GTK_CHECK_BUTTON(button),
 			purple_prefs_get_bool(key));
 
 	gtk_box_append(GTK_BOX(page), button);
@@ -393,7 +393,7 @@ pidgin_prefs_checkbox(const char *text, 
 void
 pidgin_prefs_bind_checkbox(const char *key, GtkWidget *button)
 {
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
+	gtk_check_button_set_active(GTK_CHECK_BUTTON(button),
 			purple_prefs_get_bool(key));
 	g_signal_connect(G_OBJECT(button), "toggled",
 			G_CALLBACK(set_bool_pref), (char *)key);
diff --git a/pidgin/resources/Prefs/away.ui b/pidgin/resources/Prefs/away.ui
--- a/pidgin/resources/Prefs/away.ui
+++ b/pidgin/resources/Prefs/away.ui
@@ -77,7 +77,7 @@ along with this program; if not, see <ht
   <template class="PidginAwayPrefs" parent="AdwPreferencesPage">
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Idle</property>
+        <property name="title" translatable="1">Idle</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -88,7 +88,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label12">
-                    <property name="label" translatable="yes">_Report idle time:</property>
+                    <property name="label" translatable="1">_Report idle time:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">idle_reporting.combo</property>
                     <property name="xalign">0</property>
@@ -112,7 +112,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label13">
-                    <property name="label" translatable="yes">_Minutes before becoming idle:</property>
+                    <property name="label" translatable="1">_Minutes before becoming idle:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">mins_before_away</property>
                     <property name="xalign">0</property>
@@ -132,7 +132,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkCheckButton" id="away_when_idle">
-                    <property name="label" translatable="yes">Change to this status when _idle:</property>
+                    <property name="label" translatable="1">Change to this status when _idle:</property>
                     <property name="focusable">1</property>
                     <property name="use-underline">1</property>
                   </object>
@@ -148,7 +148,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Away</property>
+        <property name="title" translatable="1">Away</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -158,7 +158,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label14">
-                    <property name="label" translatable="yes">_Auto-reply:</property>
+                    <property name="label" translatable="1">_Auto-reply:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">auto_reply.combo</property>
                     <property name="xalign">0</property>
@@ -183,7 +183,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Status at Startup</property>
+        <property name="title" translatable="1">Status at Startup</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -191,7 +191,7 @@ along with this program; if not, see <ht
             <property name="spacing">6</property>
             <child>
               <object class="GtkCheckButton" id="startup_current_status">
-                <property name="label" translatable="yes">Use status from last _exit at startup</property>
+                <property name="label" translatable="1">Use status from last _exit at startup</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
               </object>
@@ -201,7 +201,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="startup_label">
-                    <property name="label" translatable="yes">Status to a_pply at startup:</property>
+                    <property name="label" translatable="1">Status to a_pply at startup:</property>
                     <property name="use-underline">1</property>
                     <property name="xalign">0</property>
                   </object>
diff --git a/pidgin/resources/Prefs/conversation.ui b/pidgin/resources/Prefs/conversation.ui
--- a/pidgin/resources/Prefs/conversation.ui
+++ b/pidgin/resources/Prefs/conversation.ui
@@ -24,10 +24,8 @@ along with this program; if not, see <ht
   <!-- interface-name Pidgin -->
   <!-- interface-description Internet Messenger -->
   <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
-  <object class="TalkatuTagTable" id="format_tag_table"/>
   <object class="TalkatuWholeBuffer" id="format_buffer">
-    <property name="tag-table">format_tag_table</property>
-    <property name="text" translatable="yes">This is how your outgoing message text will appear when you use protocols that support formatting.</property>
+    <property name="text" translatable="1">This is how your outgoing message text will appear when you use protocols that support formatting.</property>
     <property name="style">whole</property>
   </object>
   <object class="GtkAdjustment" id="minimum_entry_lines.adjustment">
@@ -41,7 +39,7 @@ along with this program; if not, see <ht
   <template class="PidginConversationPrefs" parent="AdwPreferencesPage">
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Conversations</property>
+        <property name="title" translatable="1">Conversations</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -49,27 +47,27 @@ along with this program; if not, see <ht
             <property name="spacing">6</property>
             <child>
               <object class="GtkCheckButton" id="show_incoming_formatting">
-                <property name="label" translatable="yes">Show _formatting on incoming messages</property>
+                <property name="label" translatable="1">Show _formatting on incoming messages</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
               </object>
             </child>
             <child>
               <object class="GtkCheckButton" id="im.send_typing">
-                <property name="label" translatable="yes">_Notify buddies that you are typing to them</property>
+                <property name="label" translatable="1">_Notify buddies that you are typing to them</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
               </object>
             </child>
             <child>
               <object class="GtkCheckButton" id="use_smooth_scrolling">
-                <property name="label" translatable="yes">Use smooth-scrolling</property>
+                <property name="label" translatable="1">Use smooth-scrolling</property>
                 <property name="focusable">1</property>
               </object>
             </child>
             <child>
               <object class="GtkCheckButton" id="win32.blink_im">
-                <property name="label" translatable="yes">F_lash window when IMs are received</property>
+                <property name="label" translatable="1">F_lash window when IMs are received</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
               </object>
@@ -79,13 +77,12 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes">Minimum input area height in lines:</property>
+                    <property name="label" translatable="1">Minimum input area height in lines:</property>
                   </object>
                 </child>
                 <child>
                   <object class="GtkSpinButton" id="minimum_entry_lines">
                     <property name="focusable">1</property>
-                    <property name="input-purpose">digits</property>
                     <property name="adjustment">minimum_entry_lines.adjustment</property>
                     <property name="numeric">1</property>
                   </object>
@@ -98,7 +95,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Default Formatting</property>
+        <property name="title" translatable="1">Default Formatting</property>
         <child>
           <object class="GtkBox" id="sample_box">
             <property name="margin-start">12</property>
diff --git a/pidgin/resources/Prefs/credentialprovider.ui b/pidgin/resources/Prefs/credentialprovider.ui
--- a/pidgin/resources/Prefs/credentialprovider.ui
+++ b/pidgin/resources/Prefs/credentialprovider.ui
@@ -20,29 +20,27 @@ Foundation, Inc., 51 Franklin Street, Fi
 
 -->
 <interface>
-  <requires lib="gtk+" version="3.22"/>
+  <requires lib="gtk" version="4.0"/>
   <requires lib="libadwaita" version="0.0"/>
   <!-- interface-license-type gplv2 -->
   <!-- interface-name Pidgin -->
   <!-- interface-description Internet Messenger -->
   <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
-  <object class="GtkImage" id="image1">
-    <property name="visible">True</property>
-    <property name="can-focus">False</property>
-    <property name="icon-name">document-properties-symbolic</property>
-  </object>
   <template class="PidginCredentialProviderRow" parent="AdwActionRow">
-    <property name="visible">True</property>
-    <property name="can-focus">True</property>
-    <property name="activatable">True</property>
+    <property name="focusable">1</property>
+    <property name="activatable">1</property>
     <child>
       <object class="GtkButton" id="configure">
-        <property name="sensitive">False</property>
-        <property name="can-focus">True</property>
-        <property name="receives-default">True</property>
+        <property name="sensitive">0</property>
+        <property name="focusable">1</property>
+        <property name="receives-default">1</property>
         <property name="halign">center</property>
         <property name="valign">center</property>
-        <property name="image">image1</property>
+        <child>
+          <object class="GtkImage">
+            <property name="icon-name">document-properties-symbolic</property>
+          </object>
+        </child>
         <style>
           <class name="circular"/>
         </style>
@@ -50,11 +48,11 @@ Foundation, Inc., 51 Franklin Street, Fi
     </child>
     <child>
       <object class="GtkImage" id="active">
-        <property name="visible">True</property>
-        <property name="can-focus">False</property>
         <property name="valign">center</property>
-        <property name="xpad">6</property>
-        <property name="ypad">6</property>
+        <property name="margin-start">6</property>
+        <property name="margin-end">6</property>
+        <property name="margin-top">6</property>
+        <property name="margin-bottom">6</property>
         <property name="icon-name">emblem-default-symbolic</property>
       </object>
     </child>
diff --git a/pidgin/resources/Prefs/credentials.ui b/pidgin/resources/Prefs/credentials.ui
--- a/pidgin/resources/Prefs/credentials.ui
+++ b/pidgin/resources/Prefs/credentials.ui
@@ -26,11 +26,11 @@ along with this library; if not, see <ht
   <!-- interface-description Internet Messenger -->
   <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
   <template class="PidginCredentialPrefs" parent="AdwPreferencesPage">
-    <property name="title" translatable="yes">Credentials</property>
+    <property name="title" translatable="1">Credentials</property>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="description" translatable="yes">Pidgin does not store passwords directly, but uses the provider selected below to store passwords. Changing providers will not migrate existing stored passwords.</property>
-        <property name="title" translatable="yes">Credential Provider</property>
+        <property name="description" translatable="1">Pidgin does not store passwords directly, but uses the provider selected below to store passwords. Changing providers will not migrate existing stored passwords.</property>
+        <property name="title" translatable="1">Credential Provider</property>
         <child>
           <object class="GtkListBox" id="credential_list">
             <property name="selection-mode">none</property>
diff --git a/pidgin/resources/Prefs/network.ui b/pidgin/resources/Prefs/network.ui
--- a/pidgin/resources/Prefs/network.ui
+++ b/pidgin/resources/Prefs/network.ui
@@ -46,7 +46,7 @@ along with this program; if not, see <ht
   <template class="PidginNetworkPrefs" parent="AdwPreferencesPage">
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">IP Address</property>
+        <property name="title" translatable="1">IP Address</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -57,7 +57,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label8">
-                    <property name="label" translatable="yes">ST_UN server:</property>
+                    <property name="label" translatable="1">ST_UN server:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">stun_server</property>
                   </object>
@@ -67,7 +67,7 @@ along with this program; if not, see <ht
                     <property name="halign">fill</property>
                     <property name="hexpand">1</property>
                     <property name="focusable">1</property>
-                    <property name="placeholder-text" translatable="yes">Example: stunserver.org</property>
+                    <property name="placeholder-text" translatable="1">Example: stunserver.org</property>
                     <property name="input-purpose">url</property>
                     <child>
                       <object class="GtkEventControllerFocus">
@@ -80,7 +80,7 @@ along with this program; if not, see <ht
             </child>
             <child>
               <object class="GtkCheckButton" id="auto_ip">
-                <property name="label" translatable="yes">Use _automatically detected IP address</property>
+                <property name="label" translatable="1">Use _automatically detected IP address</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
                 <signal name="toggled" handler="auto_ip_button_clicked_cb" after="yes" swapped="no"/>
@@ -91,7 +91,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label9">
-                    <property name="label" translatable="yes">Public _IP:</property>
+                    <property name="label" translatable="1">Public _IP:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">public_ip</property>
                     <property name="xalign">0</property>
@@ -111,7 +111,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Ports</property>
+        <property name="title" translatable="1">Ports</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -119,7 +119,7 @@ along with this program; if not, see <ht
             <property name="spacing">6</property>
             <child>
               <object class="GtkCheckButton" id="map_ports">
-                <property name="label" translatable="yes">_Enable automatic router port forwarding</property>
+                <property name="label" translatable="1">_Enable automatic router port forwarding</property>
                 <property name="focusable">1</property>
                 <property name="use-underline">1</property>
               </object>
@@ -129,7 +129,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkCheckButton" id="ports_range_use">
-                    <property name="label" translatable="yes">_Manually specify range of ports to listen on:</property>
+                    <property name="label" translatable="1">_Manually specify range of ports to listen on:</property>
                     <property name="focusable">1</property>
                     <property name="use-underline">1</property>
                   </object>
@@ -139,21 +139,21 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel">
-                        <property name="label" translatable="yes">_Start:</property>
+                        <property name="label" translatable="1">_Start:</property>
                         <property name="use-underline">1</property>
                       </object>
                     </child>
                     <child>
                       <object class="GtkSpinButton" id="ports_range_start">
                         <property name="focusable">1</property>
-                        <property name="text" translatable="yes">0</property>
+                        <property name="text" translatable="1">0</property>
                         <property name="adjustment">ports_range_start.adjustment</property>
                         <property name="numeric">1</property>
                       </object>
                     </child>
                     <child>
                       <object class="GtkLabel">
-                        <property name="label" translatable="yes">_End:</property>
+                        <property name="label" translatable="1">_End:</property>
                         <property name="use-underline">1</property>
                         <property name="mnemonic-widget">ports_range_end</property>
                       </object>
@@ -161,7 +161,7 @@ along with this program; if not, see <ht
                     <child>
                       <object class="GtkSpinButton" id="ports_range_end">
                         <property name="focusable">1</property>
-                        <property name="text" translatable="yes">0</property>
+                        <property name="text" translatable="1">0</property>
                         <property name="adjustment">ports_range_end.adjustment</property>
                         <property name="numeric">1</property>
                       </object>
@@ -176,7 +176,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Relay Server (TURN)</property>
+        <property name="title" translatable="1">Relay Server (TURN)</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -187,7 +187,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label10">
-                    <property name="label" translatable="yes">_TURN server:</property>
+                    <property name="label" translatable="1">_TURN server:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">turn_server</property>
                     <property name="xalign">0</property>
@@ -205,7 +205,7 @@ along with this program; if not, see <ht
                 </child>
                 <child>
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes">_UDP Port:</property>
+                    <property name="label" translatable="1">_UDP Port:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">turn_port_udp</property>
                   </object>
@@ -219,7 +219,7 @@ along with this program; if not, see <ht
                 </child>
                 <child>
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes">T_CP Port:</property>
+                    <property name="label" translatable="1">T_CP Port:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">turn_port_tcp</property>
                   </object>
@@ -238,7 +238,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel" id="label11">
-                    <property name="label" translatable="yes">Use_rname:</property>
+                    <property name="label" translatable="1">Use_rname:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">turn_username</property>
                     <property name="xalign">0</property>
@@ -251,7 +251,7 @@ along with this program; if not, see <ht
                 </child>
                 <child>
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes">Pass_word:</property>
+                    <property name="label" translatable="1">Pass_word:</property>
                     <property name="use-underline">1</property>
                     <property name="mnemonic-widget">turn_password</property>
                   </object>
diff --git a/pidgin/resources/Prefs/prefs.ui b/pidgin/resources/Prefs/prefs.ui
--- a/pidgin/resources/Prefs/prefs.ui
+++ b/pidgin/resources/Prefs/prefs.ui
@@ -20,136 +20,92 @@ Foundation, Inc., 51 Franklin Street, Fi
 
 -->
 <interface>
-  <requires lib="gtk+" version="3.22"/>
+  <requires lib="gtk" version="4.0"/>
   <requires lib="pidgin" version="3.0"/>
   <!-- interface-license-type gplv2 -->
   <!-- interface-name Pidgin -->
   <!-- interface-description Internet Messenger -->
   <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
   <template class="PidginPrefsWindow" parent="GtkDialog">
-    <property name="can-focus">False</property>
-    <property name="title" translatable="yes">Preferences</property>
-    <property name="type-hint">dialog</property>
+    <property name="title" translatable="1">Preferences</property>
     <signal name="destroy" handler="delete_prefs" swapped="no"/>
-    <child internal-child="vbox">
+    <child internal-child="content_area">
       <object class="GtkBox">
-        <property name="can-focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
+        <property name="vexpand">1</property>
+        <property name="orientation">horizontal</property>
+        <child>
+          <object class="GtkStackSidebar">
+            <property name="stack">stack</property>
+          </object>
+        </child>
         <child>
-          <object class="GtkBox">
-            <property name="visible">True</property>
-            <property name="can-focus">False</property>
+          <object class="GtkStack" id="stack">
+            <signal name="notify::visible-child" handler="vv_test_switch_page_cb" object="vv" swapped="no"/>
             <child>
-              <object class="GtkStackSidebar">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="stack">stack</property>
+              <object class="GtkStackPage">
+                <property name="name">conversations</property>
+                <property name="title" translatable="1">Conversations</property>
+                <property name="child">
+                  <object class="PidginConversationPrefs"/>
+                </property>
               </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
+            </child>
+            <child>
+              <object class="GtkStackPage">
+                <property name="name">network</property>
+                <property name="title" translatable="1">Network</property>
+                <property name="child">
+                  <object class="PidginNetworkPrefs"/>
+                </property>
+              </object>
             </child>
             <child>
-              <object class="GtkStack" id="stack">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <signal name="notify::visible-child" handler="vv_test_switch_page_cb" object="vv" swapped="no"/>
-                <child>
-                  <object class="PidginConversationPrefs">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">conversations</property>
-                    <property name="title" translatable="yes">Conversations</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="PidginNetworkPrefs">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">network</property>
-                    <property name="title" translatable="yes">Network</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="PidginProxyPrefs">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">proxy</property>
-                    <property name="title" translatable="yes">Proxy</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="PidginAwayPrefs">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">away</property>
-                    <property name="title" translatable="yes">Status / Idle</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="PidginCredentialPrefs">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">credentials</property>
-                    <property name="title" translatable="yes">Credentials</property>
-                    <property name="position">4</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="PidginVVPrefs" id="vv">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="name">vv</property>
-                    <property name="title" translatable="yes">Voice/Video</property>
-                    <property name="position">5</property>
-                  </packing>
-                </child>
+              <object class="GtkStackPage">
+                <property name="name">proxy</property>
+                <property name="title" translatable="1">Proxy</property>
+                <property name="child">
+                  <object class="PidginProxyPrefs"/>
+                </property>
               </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
+            </child>
+            <child>
+              <object class="GtkStackPage">
+                <property name="name">away</property>
+                <property name="title" translatable="1">Status / Idle</property>
+                <property name="child">
+                  <object class="PidginAwayPrefs"/>
+                </property>
+              </object>
             </child>
             <child>
-              <placeholder/>
+              <object class="GtkStackPage">
+                <property name="name">credentials</property>
+                <property name="title" translatable="1">Credentials</property>
+                <property name="child">
+                  <object class="PidginCredentialPrefs"/>
+                </property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkStackPage">
+                <property name="name">vv</property>
+                <property name="title" translatable="1">Voice/Video</property>
+                <property name="child">
+                  <object class="PidginVVPrefs" id="vv"/>
+                </property>
+              </object>
             </child>
           </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
         </child>
       </object>
     </child>
     <child type="action">
       <object class="GtkButton">
-        <property name="label" translatable="yes">_Close</property>
-        <property name="visible">True</property>
-        <property name="can-focus">True</property>
-        <property name="receives-default">True</property>
-        <property name="use-underline">True</property>
-        <signal name="clicked" handler="gtk_widget_destroy" object="PidginPrefsWindow" swapped="yes"/>
+        <property name="label" translatable="1">_Close</property>
+        <property name="focusable">1</property>
+        <property name="receives-default">1</property>
+        <property name="use-underline">1</property>
+        <signal name="clicked" handler="gtk_window_destroy" object="PidginPrefsWindow" swapped="yes"/>
       </object>
     </child>
   </template>
diff --git a/pidgin/resources/Prefs/proxy.ui b/pidgin/resources/Prefs/proxy.ui
--- a/pidgin/resources/Prefs/proxy.ui
+++ b/pidgin/resources/Prefs/proxy.ui
@@ -65,7 +65,7 @@ along with this program; if not, see <ht
   <template class="PidginProxyPrefs" parent="AdwPreferencesPage">
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Proxy Server</property>
+        <property name="title" translatable="1">Proxy Server</property>
         <child>
           <object class="GtkStack" id="stack">
             <property name="margin-start">12</property>
@@ -80,7 +80,7 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel">
-                        <property name="label" translatable="yes">Proxy preferences are configured in GNOME preferences</property>
+                        <property name="label" translatable="1">Proxy preferences are configured in GNOME preferences</property>
                         <property name="xalign">0</property>
                       </object>
                     </child>
@@ -89,7 +89,7 @@ along with this program; if not, see <ht
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkLabel" id="gnome_not_found">
-                            <property name="label" translatable="yes">Proxy configuration program was not found.</property>
+                            <property name="label" translatable="1">Proxy configuration program was not found.</property>
                             <attributes>
                               <attribute name="weight" value="bold"></attribute>
                             </attributes>
@@ -97,7 +97,7 @@ along with this program; if not, see <ht
                         </child>
                         <child>
                           <object class="GtkButton" id="gnome_program">
-                            <property name="label" translatable="yes">Configure _Proxy</property>
+                            <property name="label" translatable="1">Configure _Proxy</property>
                             <property name="focusable">1</property>
                             <property name="receives-default">1</property>
                             <property name="use-underline">1</property>
@@ -113,14 +113,13 @@ along with this program; if not, see <ht
             <child>
               <object class="GtkStackPage">
                 <property name="name">nongnome</property>
-                <property name="position">1</property>
                 <property name="child">
                   <object class="GtkBox">
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkCheckButton" id="socks4_remotedns">
-                        <property name="label" translatable="yes">Use remote _DNS with SOCKS4 proxies</property>
+                        <property name="label" translatable="1">Use remote _DNS with SOCKS4 proxies</property>
                         <property name="focusable">1</property>
                         <property name="use-underline">1</property>
                       </object>
@@ -130,7 +129,7 @@ along with this program; if not, see <ht
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkLabel">
-                            <property name="label" translatable="yes">Proxy t_ype:</property>
+                            <property name="label" translatable="1">Proxy t_ype:</property>
                             <property name="use-underline">1</property>
                             <property name="mnemonic-widget">type.combo</property>
                           </object>
@@ -154,14 +153,11 @@ along with this program; if not, see <ht
                         <property name="row-spacing">10</property>
                         <property name="column-spacing">5</property>
                         <child>
-                          <object class="GtkLabel">
-                            <property name="label" translatable="yes">_Host:</property>
+                          <object class="GtkLabel" id="host-label">
+                            <property name="label" translatable="1">_Host:</property>
                             <property name="use-underline">1</property>
                             <property name="mnemonic-widget">host</property>
                             <property name="xalign">1</property>
-                            <accessibility>
-                              <relation type="label-for" target="host"/>
-                            </accessibility>
                             <layout>
                               <property name="column">0</property>
                               <property name="row">0</property>
@@ -172,6 +168,9 @@ along with this program; if not, see <ht
                           <object class="GtkEntry" id="host">
                             <property name="focusable">1</property>
                             <signal name="changed" handler="proxy_print_option" object="PidginProxyPrefs" swapped="no"/>
+                            <accessibility>
+                              <relation name="labelled-by">host-label</relation>
+                            </accessibility>
                             <layout>
                               <property name="column">1</property>
                               <property name="row">0</property>
@@ -179,13 +178,10 @@ along with this program; if not, see <ht
                           </object>
                         </child>
                         <child>
-                          <object class="GtkLabel">
-                            <property name="label" translatable="yes">P_ort:</property>
+                          <object class="GtkLabel" id="port-label">
+                            <property name="label" translatable="1">P_ort:</property>
                             <property name="use-underline">1</property>
                             <property name="xalign">1</property>
-                            <accessibility>
-                              <relation type="label-for" target="port"/>
-                            </accessibility>
                             <layout>
                               <property name="column">2</property>
                               <property name="row">0</property>
@@ -195,10 +191,13 @@ along with this program; if not, see <ht
                         <child>
                           <object class="GtkSpinButton" id="port">
                             <property name="focusable">1</property>
-                            <property name="text" translatable="yes">0</property>
+                            <property name="text" translatable="1">0</property>
                             <property name="adjustment">port.adjustment</property>
                             <property name="numeric">1</property>
                             <signal name="changed" handler="proxy_print_option" object="PidginProxyPrefs" swapped="no"/>
+                            <accessibility>
+                              <relation name="labelled-by">port-label</relation>
+                            </accessibility>
                             <layout>
                               <property name="column">3</property>
                               <property name="row">0</property>
@@ -207,7 +206,7 @@ along with this program; if not, see <ht
                         </child>
                         <child>
                           <object class="GtkLabel">
-                            <property name="label" translatable="yes">User_name:</property>
+                            <property name="label" translatable="1">User_name:</property>
                             <property name="use-underline">1</property>
                             <property name="mnemonic-widget">username</property>
                             <property name="xalign">1</property>
@@ -228,14 +227,11 @@ along with this program; if not, see <ht
                           </object>
                         </child>
                         <child>
-                          <object class="GtkLabel">
-                            <property name="label" translatable="yes">Pa_ssword:</property>
+                          <object class="GtkLabel" id="password-label">
+                            <property name="label" translatable="1">Pa_ssword:</property>
                             <property name="use-underline">1</property>
                             <property name="mnemonic-widget">password</property>
                             <property name="xalign">1</property>
-                            <accessibility>
-                              <relation type="label-for" target="password"/>
-                            </accessibility>
                             <layout>
                               <property name="column">2</property>
                               <property name="row">1</property>
@@ -249,6 +245,9 @@ along with this program; if not, see <ht
                             <property name="invisible-char">●</property>
                             <property name="input-purpose">password</property>
                             <signal name="changed" handler="proxy_print_option" object="PidginProxyPrefs" swapped="no"/>
+                            <accessibility>
+                              <relation name="labelled-by">password-label</relation>
+                            </accessibility>
                             <layout>
                               <property name="column">3</property>
                               <property name="row">1</property>
diff --git a/pidgin/resources/Prefs/vv.ui b/pidgin/resources/Prefs/vv.ui
--- a/pidgin/resources/Prefs/vv.ui
+++ b/pidgin/resources/Prefs/vv.ui
@@ -68,7 +68,7 @@ along with this program; if not, see <ht
   <template class="PidginVVPrefs" parent="AdwPreferencesPage">
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Audio</property>
+        <property name="title" translatable="1">Audio</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -82,7 +82,7 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label1">
-                        <property name="label" translatable="yes" context="Device for Audio Input">Device</property>
+                        <property name="label" translatable="1" context="Device for Audio Input">Device</property>
                         <property name="xalign">0</property>
                       </object>
                     </child>
@@ -102,7 +102,7 @@ along with this program; if not, see <ht
                 </property>
                 <child type="label">
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes" context="Input for Audio">Input</property>
+                    <property name="label" translatable="1" context="Input for Audio">Input</property>
                     <attributes>
                       <attribute name="weight" value="bold"></attribute>
                     </attributes>
@@ -118,7 +118,7 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label2">
-                        <property name="label" translatable="yes" context="Device for Audio Output">Device</property>
+                        <property name="label" translatable="1" context="Device for Audio Output">Device</property>
                         <property name="xalign">0</property>
                       </object>
                     </child>
@@ -138,7 +138,7 @@ along with this program; if not, see <ht
                 </property>
                 <child type="label">
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes" context="Output for Audio">Output</property>
+                    <property name="label" translatable="1" context="Output for Audio">Output</property>
                     <attributes>
                       <attribute name="weight" value="bold"></attribute>
                     </attributes>
@@ -151,7 +151,7 @@ along with this program; if not, see <ht
                 <property name="spacing">6</property>
                 <child>
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes">Volume:</property>
+                    <property name="label" translatable="1">Volume:</property>
                   </object>
                 </child>
                 <child>
@@ -162,31 +162,13 @@ along with this program; if not, see <ht
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment2</property>
                     <signal name="value-changed" handler="volume_changed_cb" swapped="no"/>
-                    <child internal-child="plus_button">
-                      <object class="GtkButton">
-                        <property name="visible">0</property>
-                        <property name="focusable">1</property>
-                        <property name="receives-default">1</property>
-                        <property name="halign">center</property>
-                        <property name="valign">center</property>
-                      </object>
-                    </child>
-                    <child internal-child="minus_button">
-                      <object class="GtkButton">
-                        <property name="visible">0</property>
-                        <property name="focusable">1</property>
-                        <property name="receives-default">1</property>
-                        <property name="halign">center</property>
-                        <property name="valign">center</property>
-                      </object>
-                    </child>
                   </object>
                 </child>
               </object>
             </child>
             <child>
               <object class="GtkLabel" id="voice.threshold_label">
-                <property name="label" translatable="yes">Silence threshold:</property>
+                <property name="label" translatable="1">Silence threshold:</property>
                 <property name="xalign">0</property>
               </object>
             </child>
@@ -201,7 +183,7 @@ along with this program; if not, see <ht
             </child>
             <child>
               <object class="GtkToggleButton" id="voice.test">
-                <property name="label" translatable="yes">Test Audio</property>
+                <property name="label" translatable="1">Test Audio</property>
                 <property name="focusable">1</property>
                 <property name="receives-default">1</property>
                 <signal name="toggled" handler="toggle_voice_test_cb" object="PidginVVPrefs" swapped="no"/>
@@ -218,7 +200,7 @@ along with this program; if not, see <ht
     </child>
     <child>
       <object class="AdwPreferencesGroup">
-        <property name="title" translatable="yes">Video</property>
+        <property name="title" translatable="1">Video</property>
         <child>
           <object class="GtkBox">
             <property name="margin-start">12</property>
@@ -232,7 +214,7 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label3">
-                        <property name="label" translatable="yes" context="Device for Video Input">Device</property>
+                        <property name="label" translatable="1" context="Device for Video Input">Device</property>
                         <property name="xalign">0</property>
                       </object>
                     </child>
@@ -252,7 +234,7 @@ along with this program; if not, see <ht
                 </property>
                 <child type="label">
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes" context="Input for Video">Input</property>
+                    <property name="label" translatable="1" context="Input for Video">Input</property>
                     <attributes>
                       <attribute name="weight" value="bold"></attribute>
                     </attributes>
@@ -268,7 +250,7 @@ along with this program; if not, see <ht
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label4">
-                        <property name="label" translatable="yes" context="Device for Video Output">Device</property>
+                        <property name="label" translatable="1" context="Device for Video Output">Device</property>
                         <property name="xalign">0</property>
                       </object>
                     </child>
@@ -288,7 +270,7 @@ along with this program; if not, see <ht
                 </property>
                 <child type="label">
                   <object class="GtkLabel">
-                    <property name="label" translatable="yes" context="Output for Video">Output</property>
+                    <property name="label" translatable="1" context="Output for Video">Output</property>
                     <attributes>
                       <attribute name="weight" value="bold"></attribute>
                     </attributes>
@@ -308,7 +290,7 @@ along with this program; if not, see <ht
             </child>
             <child>
               <object class="GtkToggleButton" id="video.test">
-                <property name="label" translatable="yes">Test Video</property>
+                <property name="label" translatable="1">Test Video</property>
                 <property name="focusable">1</property>
                 <property name="receives-default">1</property>
                 <signal name="toggled" handler="toggle_video_test_cb" object="PidginVVPrefs" swapped="no"/>
