diff --git a/pidgin/pidginprotocolchooser.h b/pidgin/pidginprotocolchooser.h
--- a/pidgin/pidginprotocolchooser.h
+++ b/pidgin/pidginprotocolchooser.h
@@ -38,7 +38,7 @@ G_BEGIN_DECLS
 #define PIDGIN_TYPE_PROTOCOL_CHOOSER (pidgin_protocol_chooser_get_type())
 
 G_DECLARE_FINAL_TYPE(PidginProtocolChooser, pidgin_protocol_chooser, PIDGIN,
-                     PROTOCOL_CHOOSER, AdwBin)
+                     PROTOCOL_CHOOSER, AdwComboRow)
 
 /**
  * pidgin_protocol_chooser_new:
# HG changeset patch
# Node ID c287178ed976
# Parent  6ccdb4116ca2
diff --git a/pidgin/pidginprotocolchooser.c b/pidgin/pidginprotocolchooser.c
--- a/pidgin/pidginprotocolchooser.c
+++ b/pidgin/pidginprotocolchooser.c
@@ -34,9 +34,8 @@ static GParamSpec *properties[N_PROPERTI
  * Structs
  *****************************************************************************/
 struct _PidginProtocolChooser {
-	AdwBin parent;
+	AdwComboRow parent;
 
-	GtkDropDown *dropdown;
 	GtkWidget *sort;
 };
 
@@ -56,7 +55,8 @@ dropdown_changed_cb(G_GNUC_UNUSED GObjec
 /******************************************************************************
  * GObject Implementation
  *****************************************************************************/
-G_DEFINE_TYPE(PidginProtocolChooser, pidgin_protocol_chooser, ADW_TYPE_BIN)
+G_DEFINE_TYPE(PidginProtocolChooser, pidgin_protocol_chooser,
+              ADW_TYPE_COMBO_ROW)
 
 static void
 pidgin_protocol_chooser_get_property(GObject *obj, guint prop_id,
@@ -121,8 +121,6 @@ pidgin_protocol_chooser_class_init(Pidgi
 	                                            "/im/pidgin/Pidgin3/Protocols/chooser.ui");
 
 	gtk_widget_class_bind_template_child(widget_class, PidginProtocolChooser,
-	                                     dropdown);
-	gtk_widget_class_bind_template_child(widget_class, PidginProtocolChooser,
 	                                     sort);
 
 	gtk_widget_class_bind_template_callback(widget_class, dropdown_changed_cb);
@@ -153,7 +151,7 @@ pidgin_protocol_chooser_get_protocol(Pid
 
 	g_return_val_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser), NULL);
 
-	protocol = gtk_drop_down_get_selected_item(chooser->dropdown);
+	protocol = adw_combo_row_get_selected_item(ADW_COMBO_ROW(chooser));
 
 	return protocol;
 }
@@ -167,7 +165,7 @@ pidgin_protocol_chooser_set_protocol(Pid
 	g_return_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser));
 
 	if(protocol != NULL) {
-		GListModel *model = gtk_drop_down_get_model(chooser->dropdown);
+		GListModel *model = adw_combo_row_get_model(ADW_COMBO_ROW(chooser));
 		guint count = g_list_model_get_n_items(model);
 
 		for(guint i = 0; i < count; i++) {
@@ -182,5 +180,5 @@ pidgin_protocol_chooser_set_protocol(Pid
 		}
 	}
 
-	gtk_drop_down_set_selected(chooser->dropdown, position);
+	adw_combo_row_set_selected(ADW_COMBO_ROW(chooser), position);
 }
diff --git a/pidgin/resources/Accounts/editor.ui b/pidgin/resources/Accounts/editor.ui
--- a/pidgin/resources/Accounts/editor.ui
+++ b/pidgin/resources/Accounts/editor.ui
@@ -47,17 +47,10 @@ along with this program; if not, see <ht
                   <object class="AdwPreferencesGroup" id="login_options">
                     <property name="title" translatable="1">Login Options</property>
                     <child>
-                      <object class="AdwActionRow">
-                        <property name="activatable-widget">protocol</property>
+                      <object class="PidginProtocolChooser" id="protocol">
                         <property name="title" translatable="1">Pro_tocol</property>
                         <property name="use-underline">1</property>
-                        <child>
-                          <object class="PidginProtocolChooser" id="protocol">
-                            <property name="hexpand">1</property>
-                            <property name="valign">center</property>
-                            <signal name="notify::protocol" handler="pidgin_account_editor_protocol_changed_cb" object="PidginAccountEditor" swapped="no"/>
-                          </object>
-                        </child>
+                        <signal name="notify::protocol" handler="pidgin_account_editor_protocol_changed_cb" object="PidginAccountEditor" swapped="no"/>
                       </object>
                     </child>
                     <child>
diff --git a/pidgin/resources/Protocols/chooser.ui b/pidgin/resources/Protocols/chooser.ui
--- a/pidgin/resources/Protocols/chooser.ui
+++ b/pidgin/resources/Protocols/chooser.ui
@@ -24,12 +24,10 @@ along with this library; if not, see <ht
   <!-- interface-name Pidgin -->
   <!-- interface-description Internet Messenger -->
   <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
-  <template class="PidginProtocolChooser" parent="AdwBin">
-    <property name="child">
-      <object class="GtkDropDown" id="dropdown">
-        <property name="factory">
-          <object class="GtkBuilderListItemFactory">
-            <property name="bytes">
+  <template class="PidginProtocolChooser" parent="AdwComboRow">
+    <property name="factory">
+      <object class="GtkBuilderListItemFactory">
+        <property name="bytes">
 <![CDATA[
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
@@ -62,22 +60,20 @@ along with this library; if not, see <ht
   </template>
 </interface>
 ]]>
+        </property>
+      </object>
+    </property>
+    <property name="model">
+      <object class="GtkSortListModel" id="sort">
+        <property name="sorter">
+          <object class="GtkStringSorter">
+            <property name="expression">
+              <lookup name="name" type="PurpleProtocol"/>
             </property>
           </object>
         </property>
-        <property name="model">
-          <object class="GtkSortListModel" id="sort">
-            <property name="sorter">
-              <object class="GtkStringSorter">
-                <property name="expression">
-                  <lookup name="name" type="PurpleProtocol"/>
-                </property>
-              </object>
-            </property>
-          </object>
-        </property>
-        <signal name="notify::selected" handler="dropdown_changed_cb" object="PidginProtocolChooser" swapped="no"/>
       </object>
     </property>
+    <signal name="notify::selected" handler="dropdown_changed_cb" object="PidginProtocolChooser" swapped="no"/>
   </template>
 </interface>
