Updating branch refs/heads/master to 3b28c1f9f28943e2c060b5be986d7a07b0e054ab (commit) from 7b97ce5c7043243c341df39fc7a81b722123fa79 (commit)
commit 3b28c1f9f28943e2c060b5be986d7a07b0e054ab Author: Nick Schermer <n...@xfce.org> Date: Fri Jan 27 21:57:19 2012 +0100 Fix menu reloading. .../xfce-settings-manager-dialog.c | 22 +++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/xfce4-settings-manager/xfce-settings-manager-dialog.c b/xfce4-settings-manager/xfce-settings-manager-dialog.c index 4361993..c6c5ced 100644 --- a/xfce4-settings-manager/xfce-settings-manager-dialog.c +++ b/xfce4-settings-manager/xfce-settings-manager-dialog.c @@ -993,7 +993,10 @@ xfce_settings_manager_start_search (GtkWidget *iconview, static void xfce_settings_manager_dialog_category_free (gpointer data) { - DialogCategory *category = data; + DialogCategory *category = data; + XfceSettingsManagerDialog *dialog = category->dialog; + + dialog->categories = g_list_remove (dialog->categories, category); g_object_unref (G_OBJECT (category->directory)); g_slice_free (DialogCategory, category); @@ -1147,16 +1150,33 @@ xfce_settings_manager_dialog_menu_reload (XfceSettingsManagerDialog *dialog) { GError *error = NULL; GList *elements, *li; + GList *lnext; GarconMenuDirectory *directory; GList *items, *lp; gint i = 0; gchar *item_text; gchar *normalized; gchar *filter_text; + DialogCategory *cateogry; g_return_if_fail (XFCE_IS_SETTINGS_MANAGER_DIALOG (dialog)); g_return_if_fail (GARCON_IS_MENU (dialog->menu)); + if (dialog->categories != NULL) + { + for (li = dialog->categories; li != NULL; li = lnext) + { + lnext = li->next; + cateogry = li->data; + + gtk_widget_destroy (cateogry->box); + } + + g_assert (dialog->categories == NULL); + + gtk_list_store_clear (GTK_LIST_STORE (dialog->store)); + } + if (garcon_menu_load (dialog->menu, NULL, &error)) { /* get all menu elements (preserve layout) */ _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits