[gnome-panel] [panel] Always show icons in panel menus
- From: Vincent Untz <vuntz src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-panel] [panel] Always show icons in panel menus
- Date: Wed, 1 Jul 2009 12:41:44 +0000 (UTC)
commit bf6bef101288543f3e3bc526b83d5b2da316d5d4
Author: William Jon McCann <william jon mccann gmail com>
Date: Wed Jul 1 14:39:44 2009 +0200
[panel] Always show icons in panel menus
This possible thanks to gtk_image_menu_item_set_always_show_image().
This also removes some code.
The patch contains some changes by Vincent Untz <vuntz gnome org>
http://bugzilla.gnome.org/show_bug.cgi?id=322932
gnome-panel/menu.c | 86 ++++++++-------------------------------
gnome-panel/menu.h | 2 +
gnome-panel/panel-menu-bar.c | 4 +-
gnome-panel/panel-menu-items.c | 16 ++++----
gnome-panel/panel-recent.c | 4 +-
5 files changed, 33 insertions(+), 79 deletions(-)
---
diff --git a/gnome-panel/menu.c b/gnome-panel/menu.c
index d89fa69..942cb7f 100644
--- a/gnome-panel/menu.c
+++ b/gnome-panel/menu.c
@@ -87,15 +87,6 @@ static gboolean panel_menu_key_press_handler (GtkWidget *widget,
GdkEventKey *event);
static inline gboolean
-panel_menu_have_icons (void)
-{
- return gconf_client_get_bool (
- panel_gconf_get_client (),
- "/desktop/gnome/interface/menus_have_icons",
- NULL);
-}
-
-static inline gboolean
desktop_is_home_dir (void)
{
return gconf_client_get_bool (
@@ -191,51 +182,6 @@ menuitem_to_screen (GtkWidget *menuitem)
}
static void
-menus_have_icons_changed (GConfClient *client,
- guint cnxn_id,
- GConfEntry *entry,
- GtkWidget *menu)
-{
- GConfValue *value;
- GList *list, *l;
- gboolean have_icons = TRUE;
-
- value = gconf_entry_get_value (entry);
-
- if (value != NULL && value->type == GCONF_VALUE_BOOL)
- have_icons = gconf_value_get_bool (value);
-
- list = g_list_copy (GTK_MENU_SHELL (menu)->children);
- for (l = list; l; l = l->next) {
- GtkWidget *item = l->data;
- GtkWidget *cur_image;
- GtkWidget *image;
-
- if (!GTK_IS_IMAGE_MENU_ITEM (item))
- continue;
-
- image = g_object_get_data (G_OBJECT (item), "Panel:Image");
- if (!image)
- continue;
-
- cur_image = gtk_image_menu_item_get_image (
- GTK_IMAGE_MENU_ITEM (item));
-
- if (have_icons) {
- if (cur_image != image) {
- gtk_image_menu_item_set_image (
- GTK_IMAGE_MENU_ITEM (item), image);
- gtk_widget_show (image);
- }
- } else {
- gtk_image_menu_item_set_image (
- GTK_IMAGE_MENU_ITEM (item), NULL);
- }
- }
- g_list_free (list);
-}
-
-static void
reload_image_menu_items (void)
{
GSList *l;
@@ -279,10 +225,6 @@ panel_create_menu (void)
retval = gtk_menu_new ();
gtk_widget_set_name (retval, "gnome-panel-main-menu");
-
- panel_gconf_notify_add_while_alive ("/desktop/gnome/interface/menus_have_icons",
- (GConfClientNotifyFunc) menus_have_icons_changed,
- G_OBJECT (retval));
g_signal_connect (retval, "key_press_event",
G_CALLBACK (panel_menu_key_press_handler),
@@ -1247,9 +1189,8 @@ setup_menuitem (GtkWidget *menuitem,
g_object_ref (image),
(GDestroyNotify) g_object_unref);
gtk_widget_show (image);
- if (panel_menu_have_icons ())
- gtk_image_menu_item_set_image (
- GTK_IMAGE_MENU_ITEM (menuitem), image);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem),
+ image);
} else if (icon_size != GTK_ICON_SIZE_INVALID)
g_signal_connect (menuitem, "size_request",
G_CALLBACK (image_menuitem_size_request),
@@ -1431,14 +1372,24 @@ create_fake_menu (GMenuTreeDirectory *directory)
return menu;
}
+GtkWidget *
+panel_image_menu_item_new (void)
+{
+ GtkWidget *menuitem;
+
+ menuitem = gtk_image_menu_item_new ();
+ gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem),
+ TRUE);
+ return menuitem;
+}
+
static GtkWidget *
create_submenu_entry (GtkWidget *menu,
GMenuTreeDirectory *directory)
{
GtkWidget *menuitem;
- menuitem = gtk_image_menu_item_new ();
-
+ menuitem = panel_image_menu_item_new ();
panel_load_menu_image_deferred (menuitem,
panel_menu_icon_get_size (),
NULL, NULL,
@@ -1502,7 +1453,7 @@ create_menuitem (GtkWidget *menu,
{
GtkWidget *menuitem;
- menuitem = gtk_image_menu_item_new ();
+ menuitem = panel_image_menu_item_new ();
g_object_set_data_full (G_OBJECT (menuitem),
"panel-menu-tree-entry",
@@ -1899,10 +1850,9 @@ panel_load_menu_image_deferred (GtkWidget *image_menu_item,
"Panel:Image",
g_object_ref (image),
(GDestroyNotify) g_object_unref);
-
- if (panel_menu_have_icons ())
- gtk_image_menu_item_set_image (
- GTK_IMAGE_MENU_ITEM (image_menu_item), image);
+
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (image_menu_item),
+ image);
g_signal_connect_data (image, "map",
G_CALLBACK (image_menu_shown), icon,
diff --git a/gnome-panel/menu.h b/gnome-panel/menu.h
index c17f960..5c9b48d 100644
--- a/gnome-panel/menu.h
+++ b/gnome-panel/menu.h
@@ -54,6 +54,8 @@ void setup_uri_drag (GtkWidget *menuitem,
GtkWidget * panel_create_menu (void);
+GtkWidget * panel_image_menu_item_new (void);
+
GdkPixbuf * panel_make_menu_icon (GtkIconTheme *icon_theme,
const char *icon,
const char *fallback,
diff --git a/gnome-panel/panel-menu-bar.c b/gnome-panel/panel-menu-bar.c
index 0d36cbd..190ceaa 100644
--- a/gnome-panel/panel-menu-bar.c
+++ b/gnome-panel/panel-menu-bar.c
@@ -142,7 +142,9 @@ panel_menu_bar_init (PanelMenuBar *menubar)
menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL);
- menubar->priv->applications_item = gtk_image_menu_item_new_with_label (_("Applications"));
+ menubar->priv->applications_item = panel_image_menu_item_new ();
+ gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item),
+ _("Applications"));
image = gtk_image_new_from_icon_name (PANEL_ICON_MAIN_MENU,
panel_menu_bar_icon_get_size ());
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menubar->priv->applications_item),
diff --git a/gnome-panel/panel-menu-items.c b/gnome-panel/panel-menu-items.c
index ed28a84..d1b0c09 100644
--- a/gnome-panel/panel-menu-items.c
+++ b/gnome-panel/panel-menu-items.c
@@ -237,7 +237,7 @@ panel_menu_items_append_from_desktop (GtkWidget *menu,
else
name = g_strdup (force_name);
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item, panel_menu_icon_get_size (),
icon, NULL, NULL, name);
@@ -283,7 +283,7 @@ panel_menu_items_append_place_item (const char *icon_name,
GtkWidget *item;
char *user_data;
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item,
panel_menu_icon_get_size (),
icon_name, NULL, gicon,
@@ -313,7 +313,7 @@ panel_menu_items_create_action_item_full (PanelActionButtonType action_type,
if (panel_action_get_is_disabled (action_type))
return NULL;
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item,
panel_menu_icon_get_size (),
panel_action_get_icon_name (action_type),
@@ -426,7 +426,7 @@ panel_place_menu_item_append_gtk_bookmarks (GtkWidget *menu)
} else {
GtkWidget *item;
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item, panel_menu_icon_get_size (),
PANEL_ICON_BOOKMARKS, NULL, NULL,
_("Bookmarks"));
@@ -555,7 +555,7 @@ panel_menu_item_append_drive (GtkWidget *menu,
icon = g_drive_get_icon (drive);
title = g_drive_get_name (drive);
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item,
panel_menu_icon_get_size (),
NULL, NULL, icon,
@@ -655,7 +655,7 @@ panel_menu_item_append_volume (GtkWidget *menu,
icon = g_volume_get_icon (volume);
title = g_volume_get_name (volume);
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item,
panel_menu_icon_get_size (),
NULL, NULL, icon,
@@ -866,7 +866,7 @@ panel_place_menu_item_append_local_gio (PanelPlaceMenuItem *place_item,
} else {
GtkWidget *item;
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item, panel_menu_icon_get_size (),
PANEL_ICON_REMOVABLE_MEDIA,
NULL, NULL,
@@ -953,7 +953,7 @@ panel_place_menu_item_append_remote_gio (PanelPlaceMenuItem *place_item,
} else {
GtkWidget *item;
- item = gtk_image_menu_item_new ();
+ item = panel_image_menu_item_new ();
setup_menu_item_with_icon (item, panel_menu_icon_get_size (),
PANEL_ICON_NETWORK_SERVER,
NULL, NULL,
diff --git a/gnome-panel/panel-recent.c b/gnome-panel/panel-recent.c
index 4b6c494..807650f 100644
--- a/gnome-panel/panel-recent.c
+++ b/gnome-panel/panel-recent.c
@@ -188,7 +188,7 @@ panel_recent_append_documents_menu (GtkWidget *top_menu,
GtkWidget *menu_item;
int size;
- menu_item = gtk_image_menu_item_new ();
+ menu_item = panel_image_menu_item_new ();
setup_menu_item_with_icon (menu_item,
panel_menu_icon_get_size (),
PANEL_ICON_RECENT,
@@ -227,7 +227,7 @@ panel_recent_append_documents_menu (GtkWidget *top_menu,
add_menu_separator (recent_menu);
- menu_item = gtk_image_menu_item_new ();
+ menu_item = panel_image_menu_item_new ();
setup_menu_item_with_icon (menu_item,
panel_menu_icon_get_size (),
NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]