[Goodies-commits] r2983 - in xfce4-places-plugin/trunk: . panel-plugin

Diego Ongaro ongardie at xfce.org
Fri Aug 10 19:19:20 CEST 2007


Author: ongardie
Date: 2007-08-10 17:19:20 +0000 (Fri, 10 Aug 2007)
New Revision: 2983

Modified:
   xfce4-places-plugin/trunk/ChangeLog
   xfce4-places-plugin/trunk/panel-plugin/view.c
Log:
2007-08-10	Diego Ongaro <ongardie at gmail.com>

* Clicking on Recent Changes -> Clear no longer hides the menu



Modified: xfce4-places-plugin/trunk/ChangeLog
===================================================================
--- xfce4-places-plugin/trunk/ChangeLog	2007-08-09 07:39:48 UTC (rev 2982)
+++ xfce4-places-plugin/trunk/ChangeLog	2007-08-10 17:19:20 UTC (rev 2983)
@@ -1,3 +1,7 @@
+2007-08-10	Diego Ongaro <ongardie at gmail.com>
+
+	* Clicking on Recent Changes -> Clear no longer hides the menu
+
 2007-08-05	Diego Ongaro <ongardie at gmail.com>
 
 	* Improved BookmarkAction concept.

Modified: xfce4-places-plugin/trunk/panel-plugin/view.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/view.c	2007-08-09 07:39:48 UTC (rev 2982)
+++ xfce4-places-plugin/trunk/panel-plugin/view.c	2007-08-10 17:19:20 UTC (rev 2983)
@@ -72,7 +72,7 @@
 //  - Recent Documents
 #if USE_RECENT_DOCUMENTS
 static void     places_view_cb_recent_item_open(GtkRecentChooser*, PlacesData*);
-static void     places_view_cb_recent_items_clear(GtkWidget *clear_item);
+static gboolean places_view_cb_recent_items_clear(GtkWidget *clear_item);
 #endif
 
 // Model Visitor Callbacks
@@ -255,6 +255,10 @@
                 clear_item = gtk_menu_item_new_with_mnemonic(clear_stock_item.label);
             }
             gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), clear_item);
+            /* try button-release-event to catch mouse clicks and not hide the menu after */
+            g_signal_connect(clear_item, "button-release-event",
+                             G_CALLBACK(places_view_cb_recent_items_clear), NULL);
+            /* use activate when button-release-event doesn't catch it (e.g., enter key pressed) */
             g_signal_connect(clear_item, "activate",
                              G_CALLBACK(places_view_cb_recent_items_clear), NULL);
     
@@ -600,12 +604,13 @@
     g_free(uri);
 }
 
-static void
+static gboolean
 places_view_cb_recent_items_clear(GtkWidget *clear_item)
 {
     GtkRecentManager *manager = gtk_recent_manager_get_default();
     gint removed = gtk_recent_manager_purge_items(manager, NULL);
     DBG("Cleared %d recent items", removed);
+    return TRUE;
 }
 #endif
 




More information about the Goodies-commits mailing list