[Goodies-commits] r4525 - xfce4-places-plugin/trunk/panel-plugin
Diego Ongaro
ongardie at xfce.org
Mon Apr 7 01:09:55 CEST 2008
Author: ongardie
Date: 2008-04-06 23:09:54 +0000 (Sun, 06 Apr 2008)
New Revision: 4525
Modified:
xfce4-places-plugin/trunk/panel-plugin/view.c
Log:
For bug 3871, don't allow Recent Documents Clear when there's nothing there
Modified: xfce4-places-plugin/trunk/panel-plugin/view.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/view.c 2008-04-06 22:25:55 UTC (rev 4524)
+++ xfce4-places-plugin/trunk/panel-plugin/view.c 2008-04-06 23:09:54 UTC (rev 4525)
@@ -483,6 +483,20 @@
return pview_cb_recent_items_clear(clear_item, recent_menu);
}
+static void
+pview_cb_recent_changed(GtkRecentManager *recent_manager, GtkWidget *clear_item)
+{
+ int recent_count;
+ g_object_get(recent_manager,
+ "size", &recent_count,
+ NULL);
+
+ if (recent_count > 0)
+ gtk_widget_show(clear_item);
+ else
+ gtk_widget_hide(clear_item);
+}
+
#endif
@@ -575,6 +589,7 @@
GtkWidget *recent_menu;
GtkWidget *clear_item;
GtkWidget *recent_item;
+ GtkRecentManager *recent_manager = gtk_recent_manager_get_default();
#endif
DBG("destroy menu");
@@ -664,7 +679,10 @@
separator = gtk_separator_menu_item_new();
gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), separator);
- gtk_widget_show(separator);
+ pview_cb_recent_changed(recent_manager, separator);
+ /* TODO: this leaks a pointer to separator, which may be destroyed later */
+ g_signal_connect(recent_manager, "changed",
+ G_CALLBACK(pview_cb_recent_changed), separator);
if(pd->cfg->show_icons){
clear_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, NULL);
@@ -675,7 +693,10 @@
}
gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), clear_item);
- gtk_widget_show(clear_item);
+ pview_cb_recent_changed(recent_manager, clear_item);
+ /* TODO: this leaks a pointer to clear_item, which may be destroyed later */
+ g_signal_connect(recent_manager, "changed",
+ G_CALLBACK(pview_cb_recent_changed), clear_item);
/* try button-release-event to catch mouse clicks and not hide the menu after */
g_signal_connect(clear_item, "button-release-event",
More information about the Goodies-commits
mailing list