[Xfce4-commits] <xfce4-settings:master> Fix menu reloading.
Nick Schermer
noreply at xfce.org
Fri Jan 27 21:58:01 CET 2012
Updating branch refs/heads/master
to 3b28c1f9f28943e2c060b5be986d7a07b0e054ab (commit)
from 7b97ce5c7043243c341df39fc7a81b722123fa79 (commit)
commit 3b28c1f9f28943e2c060b5be986d7a07b0e054ab
Author: Nick Schermer <nick at 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) */
More information about the Xfce4-commits
mailing list