--- a/pidgin/gtkblist.c Mon Aug 15 20:47:21 2022 -0500
+++ b/pidgin/gtkblist.c Mon Aug 15 21:28:59 2022 -0500
@@ -4525,7 +4525,7 @@
pidgin_blist_update_sort_methods(void)
- GtkWidget *sort_item = NULL;
+ GApplication *application = NULL; @@ -4533,10 +4533,13 @@
- /* walk through the sort methods and update all the things */
+ /* get the menu and clear any existing entries. */ + application = g_application_get_default(); + menu = gtk_application_get_menu_by_id(GTK_APPLICATION(application), + g_menu_remove_all(menu); + /* Walk through the sort methods and add them to the menu. */ for (l = pidgin_blist_sort_methods; l; l = l->next) {
PidginBlistSortMethod *method = NULL;
@@ -4555,10 +4558,4 @@
g_menu_append_item(menu, item);
- /* replace the old submenu with a new one */
- sort_item = pidgin_contact_list_window_get_menu_sort_item(PIDGIN_CONTACT_LIST_WINDOW(gtkblist->window));
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(sort_item),
- gtk_menu_new_from_model(G_MENU_MODEL(menu)));
--- a/pidgin/pidgincontactlistwindow.c Mon Aug 15 20:47:21 2022 -0500
+++ b/pidgin/pidgincontactlistwindow.c Mon Aug 15 21:28:59 2022 -0500
@@ -28,9 +28,6 @@
GtkApplicationWindow parent;
- GtkWidget *sort_buddies;
G_DEFINE_TYPE(PidginContactListWindow, pidgin_contact_list_window,
@@ -64,10 +61,6 @@
gtk_widget_class_bind_template_child(widget_class, PidginContactListWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginContactListWindow,
- gtk_widget_class_bind_template_child(widget_class, PidginContactListWindow,
/******************************************************************************
@@ -84,10 +77,3 @@
-pidgin_contact_list_window_get_menu_sort_item(PidginContactListWindow *window) {
- g_return_val_if_fail(PIDGIN_IS_CONTACT_LIST_WINDOW(window), NULL);
- return window->sort_buddies;
--- a/pidgin/pidgincontactlistwindow.h Mon Aug 15 20:47:21 2022 -0500
+++ b/pidgin/pidgincontactlistwindow.h Mon Aug 15 21:28:59 2022 -0500
@@ -71,18 +71,6 @@
GtkWidget *pidgin_contact_list_window_get_vbox(PidginContactListWindow *window);
- * pidgin_contact_list_window_get_menu_sort_item:
- * @window: The #PidginContactListWindow instance.
- * Returns the sort menu item from the menu of @window.
- * Returns: (transfer none): The sort menu item from the menu of @window.
-GtkWidget *pidgin_contact_list_window_get_menu_sort_item(PidginContactListWindow *window);
* pidgin_contact_list_window_get_menu_tray:
* @window: The #PidginContactListWindow instance.
--- a/pidgin/resources/BuddyList/window.ui Mon Aug 15 20:47:21 2022 -0500
+++ b/pidgin/resources/BuddyList/window.ui Mon Aug 15 21:28:59 2022 -0500
@@ -35,39 +35,6 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
- <object class="GtkMenuBar" id="menu_bar">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <object class="GtkMenuItem">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">_Buddies</property>
- <property name="use-underline">True</property>
- <object class="GtkMenu">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <object class="GtkMenuItem" id="sort_buddies">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="label" translatable="yes">_Sort Buddies</property>
- <property name="use-underline">True</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
--- a/pidgin/resources/gtk/menus.ui Mon Aug 15 20:47:21 2022 -0500
+++ b/pidgin/resources/gtk/menus.ui Mon Aug 15 21:28:59 2022 -0500
@@ -45,6 +45,14 @@
+ <attribute name="label" translatable="yes">_Sort Buddies</attribute> + <section id="sort-buddies"/> <attribute name="label" translatable="yes">_Add Buddy...</attribute>
<attribute name="action">app.add-buddy</attribute>