[Goodies-commits] r3391 - in xfce4-places-plugin/trunk: . panel-plugin
Diego Ongaro
ongardie at xfce.org
Tue Oct 16 06:42:30 CEST 2007
Author: ongardie
Date: 2007-10-16 04:42:30 +0000 (Tue, 16 Oct 2007)
New Revision: 3391
Modified:
xfce4-places-plugin/trunk/ChangeLog
xfce4-places-plugin/trunk/panel-plugin/view.c
Log:
2007-10-19 Diego Ongaro <ongardie at gmail.com>
* view.c: Bug #3605 - individually show menu items instead of
using show_all to avoid incorrectly showing "No items found" in
the Recent Documents submenu on GTK 2.12
Modified: xfce4-places-plugin/trunk/ChangeLog
===================================================================
--- xfce4-places-plugin/trunk/ChangeLog 2007-10-15 22:07:55 UTC (rev 3390)
+++ xfce4-places-plugin/trunk/ChangeLog 2007-10-16 04:42:30 UTC (rev 3391)
@@ -1,3 +1,9 @@
+2007-10-19 Diego Ongaro <ongardie at gmail.com>
+
+ * view.c: Bug #3605 - individually show menu items instead of
+ using show_all to avoid incorrectly showing "No items found" in
+ the Recent Documents submenu on GTK 2.12
+
2007-09-28 Diego Ongaro <ongardie at gmail.com>
* view.c: Use XfceHVBox
Modified: xfce4-places-plugin/trunk/panel-plugin/view.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/view.c 2007-10-15 22:07:55 UTC (rev 3390)
+++ xfce4-places-plugin/trunk/panel-plugin/view.c 2007-10-16 04:42:30 UTC (rev 3391)
@@ -398,21 +398,23 @@
if(actions != NULL){
context = gtk_menu_new();
- gtk_widget_show(context);
while(actions != NULL){
action = (PlacesBookmarkAction*) actions->data;
context_item = gtk_menu_item_new_with_label(action->label);
+
g_object_set_data(G_OBJECT(context_item), "action", action);
- gtk_widget_show(context_item);
g_signal_connect(context_item, "activate",
G_CALLBACK(pview_cb_menu_item_context_act), pd);
+
gtk_menu_shell_append(GTK_MENU_SHELL(context), context_item);
+ gtk_widget_show(context_item);
actions = actions->next;
}
+ gtk_widget_show(context);
gtk_menu_popup(GTK_MENU(context),
NULL, NULL,
NULL, NULL,
@@ -481,18 +483,24 @@
g_assert(view != NULL);
g_assert(bookmark != NULL);
+ GtkWidget *separator;
GtkWidget *item;
GdkPixbuf *pb;
GtkWidget *image;
+ /* lazily add separator */
if(view->needs_separator){
- gtk_menu_shell_append(GTK_MENU_SHELL(view->menu),
- gtk_separator_menu_item_new());
+
+ separator = gtk_separator_menu_item_new();
+ gtk_menu_shell_append(GTK_MENU_SHELL(view->menu), separator);
+ gtk_widget_show(separator);
+
view->needs_separator = FALSE;
}
item = gtk_image_menu_item_new_with_label(bookmark->label);
+ /* try to set icon */
if(view->cfg->show_icons && bookmark->icon != NULL){
pb = xfce_themed_icon_load(bookmark->icon, 16);
@@ -528,6 +536,7 @@
G_CALLBACK(places_bookmark_free), bookmark);
gtk_menu_shell_append(GTK_MENU_SHELL(view->menu), item);
+ gtk_widget_show(item);
}
@@ -538,6 +547,7 @@
PlacesBookmarkGroup *bookmark_group;
GList *bookmarks;
PlacesBookmark *bookmark;
+ GtkWidget *separator;
#if USE_RECENT_DOCUMENTS
GtkWidget *recent_menu;
@@ -586,42 +596,53 @@
bookmark_group_li = bookmark_group_li->next;
}
- /* Recent Documents */
+ /* "Search for Files" or "Recent Documents" -> separator */
#if USE_RECENT_DOCUMENTS
if(pd->cfg->show_recent || (pd->cfg->search_cmd != NULL && *pd->cfg->search_cmd != '\0')){
#else
if(pd->cfg->search_cmd != NULL && *pd->cfg->search_cmd != '\0'){
#endif
- gtk_menu_shell_append(GTK_MENU_SHELL(pd->menu),
- gtk_separator_menu_item_new());
+ separator = gtk_separator_menu_item_new();
+ gtk_menu_shell_append(GTK_MENU_SHELL(pd->menu), separator);
+ gtk_widget_show(separator);
}
+ /* Search for files */
if(pd->cfg->search_cmd != NULL && *pd->cfg->search_cmd != '\0'){
+
GtkWidget *search_item = gtk_image_menu_item_new_with_mnemonic(_("Search for Files"));
+
if(pd->cfg->show_icons){
GtkWidget *search_image = gtk_image_new_from_icon_name("system-search", GTK_ICON_SIZE_MENU);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(search_item), search_image);
}
+
gtk_menu_shell_append(GTK_MENU_SHELL(pd->menu), search_item);
+ gtk_widget_show(search_item);
+
g_signal_connect_swapped(search_item, "activate",
G_CALLBACK(places_gui_exec), pd->cfg->search_cmd);
}
+ /* Recent Documents */
#if USE_RECENT_DOCUMENTS
if(pd->cfg->show_recent){
recent_menu = gtk_recent_chooser_menu_new();
+
gtk_recent_chooser_set_show_icons(GTK_RECENT_CHOOSER(recent_menu), pd->cfg->show_icons);
gtk_recent_chooser_set_limit(GTK_RECENT_CHOOSER(recent_menu), pd->cfg->show_recent_number);
+
g_signal_connect(recent_menu, "item-activated",
G_CALLBACK(pview_cb_recent_item_open), pd);
if(pd->cfg->show_recent_clear){
-
- gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu),
- gtk_separator_menu_item_new());
-
+
+ separator = gtk_separator_menu_item_new();
+ gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), separator);
+ gtk_widget_show(separator);
+
if(pd->cfg->show_icons){
clear_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLEAR, NULL);
}else{
@@ -629,7 +650,10 @@
gtk_stock_lookup(GTK_STOCK_CLEAR, &clear_stock_item);
clear_item = gtk_menu_item_new_with_mnemonic(clear_stock_item.label);
}
+
gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), clear_item);
+ gtk_widget_show(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(pview_cb_recent_items_clear), NULL);
@@ -644,8 +668,12 @@
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(recent_item),
gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
}
+
gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent_item), recent_menu);
+ gtk_widget_show(recent_menu);
+
gtk_menu_shell_append(GTK_MENU_SHELL(pd->menu), recent_item);
+ gtk_widget_show(recent_item);
}
#endif
@@ -654,7 +682,7 @@
G_CALLBACK(pview_cb_menu_deact), pd);
/* Quit hiding the menu */
- gtk_widget_show_all(pd->menu);
+ gtk_widget_show(pd->menu);
/* This helps allocate resources beforehand so it'll pop up faster the first time */
gtk_widget_realize(pd->menu);
@@ -788,9 +816,9 @@
if(view->button_image == NULL){
view->button_image = g_object_ref(gtk_image_new_from_pixbuf(icon));
- gtk_widget_show(view->button_image);
gtk_box_pack_start_defaults(GTK_BOX(button_box),
view->button_image);
+ gtk_widget_show(view->button_image);
}else{
g_assert(GTK_IS_WIDGET(view->button_image));
gtk_image_set_from_pixbuf(GTK_IMAGE(view->button_image), icon);
@@ -813,9 +841,9 @@
if(view->button_label == NULL){
view->button_label = g_object_ref(gtk_label_new(cfg->label));
- gtk_widget_show(view->button_label);
gtk_box_pack_end_defaults(GTK_BOX(button_box),
view->button_label);
+ gtk_widget_show(view->button_label);
}else{
g_assert(GTK_IS_WIDGET(view->button_label));
if(label_tooltip_changed)
@@ -932,15 +960,16 @@
/* create the button */
view->button = g_object_ref(xfce_create_panel_toggle_button());
+ xfce_panel_plugin_add_action_widget(view->plugin, view->button);
+ gtk_container_add(GTK_CONTAINER(view->plugin), view->button);
gtk_widget_show(view->button);
- gtk_container_add(GTK_CONTAINER(view->plugin), view->button);
- xfce_panel_plugin_add_action_widget(view->plugin, view->button);
/* create the box */
button_box = xfce_hvbox_new(xfce_panel_plugin_get_orientation(view->plugin),
FALSE, 4);
gtk_container_set_border_width(GTK_CONTAINER(button_box), 0);
gtk_container_add(GTK_CONTAINER(view->button), button_box);
+ gtk_widget_show(button_box);
pview_button_update(view);
More information about the Goodies-commits
mailing list