[gnome-panel] panel: Fix wrong height of Places menu item in main menu



commit 743b3deaa1c7b4caac2d4fc74f5796af5e136880
Author: Vincent Untz <vuntz gnome org>
Date:   Mon Oct 17 13:15:05 2011 +0200

    panel: Fix wrong height of Places menu item in main menu
    
    When not in the menu bar, the Places menu item should be of fixed width,
    like all other items -- regardless of whether the icon is shown or not.

 gnome-panel/menu.c             |    2 +-
 gnome-panel/panel-menu-bar.c   |    2 +-
 gnome-panel/panel-menu-items.c |   39 +++++++++++++++++++++++++++------------
 gnome-panel/panel-menu-items.h |    3 ++-
 4 files changed, 31 insertions(+), 15 deletions(-)
---
diff --git a/gnome-panel/menu.c b/gnome-panel/menu.c
index 497b7fd..9bd069a 100644
--- a/gnome-panel/menu.c
+++ b/gnome-panel/menu.c
@@ -1383,7 +1383,7 @@ main_menu_append (GtkWidget *main_menu,
 	if (add_separator)
 		add_menu_separator (main_menu);
 
-	item = panel_place_menu_item_new (TRUE);
+	item = panel_place_menu_item_new (TRUE, FALSE);
 	panel_place_menu_item_set_panel (item, panel);
 	gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), item);
 	gtk_widget_show (item);
diff --git a/gnome-panel/panel-menu-bar.c b/gnome-panel/panel-menu-bar.c
index de70925..be037da 100644
--- a/gnome-panel/panel-menu-bar.c
+++ b/gnome-panel/panel-menu-bar.c
@@ -143,7 +143,7 @@ panel_menu_bar_init (PanelMenuBar *menubar)
 			       menubar->priv->applications_item);
 	gtk_widget_show (menubar->priv->applications_item);
 
-	menubar->priv->places_item = panel_place_menu_item_new (FALSE);
+	menubar->priv->places_item = panel_place_menu_item_new (FALSE, TRUE);
 	gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
 			       menubar->priv->places_item);
 	gtk_widget_show (menubar->priv->places_item);
diff --git a/gnome-panel/panel-menu-items.c b/gnome-panel/panel-menu-items.c
index a58801d..821e638 100644
--- a/gnome-panel/panel-menu-items.c
+++ b/gnome-panel/panel-menu-items.c
@@ -1615,23 +1615,38 @@ panel_desktop_menu_item_class_init (PanelDesktopMenuItemClass *klass)
 }
 
 GtkWidget *
-panel_place_menu_item_new (gboolean use_image)
+panel_place_menu_item_new (gboolean use_image,
+			   gboolean in_menubar)
 {
 	PanelPlaceMenuItem *menuitem;
-	GtkWidget          *image;
+	const char          *name;
+	const char          *icon_name;
 
 	menuitem = g_object_new (PANEL_TYPE_PLACE_MENU_ITEM, NULL);
 
-	if (use_image)
-		image = gtk_image_new_from_icon_name (PANEL_ICON_FOLDER,
-						      panel_menu_icon_get_size ());
-	else
-		image = NULL;
+	name = _("Places");
+	icon_name = PANEL_ICON_FOLDER;
 
-	setup_menuitem (GTK_WIDGET (menuitem),
-			image ? panel_menu_icon_get_size () : GTK_ICON_SIZE_INVALID,
-			image,
-			_("Places"));
+	if (in_menubar) {
+		gtk_menu_item_set_label (GTK_MENU_ITEM (menuitem), name);
+		if (use_image) {
+			GtkWidget *image;
+			image = gtk_image_new_from_icon_name (icon_name,
+							      panel_menu_icon_get_size ());
+			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem),
+						       image);
+		}
+	} else {
+		if (use_image)
+			setup_menu_item_with_icon (GTK_WIDGET (menuitem),
+						   panel_menu_icon_get_size (),
+						   icon_name, NULL, NULL,
+						   name);
+		else
+			setup_menuitem (GTK_WIDGET (menuitem),
+					GTK_ICON_SIZE_INVALID, NULL,
+					name);
+	}
 
 	menuitem->priv->menu = panel_place_menu_item_create_menu (menuitem);
 	gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem),
diff --git a/gnome-panel/panel-menu-items.h b/gnome-panel/panel-menu-items.h
index 86d766b..1548b93 100644
--- a/gnome-panel/panel-menu-items.h
+++ b/gnome-panel/panel-menu-items.h
@@ -78,7 +78,8 @@ struct _PanelDesktopMenuItemClass {
 GType panel_desktop_menu_item_get_type (void) G_GNUC_CONST;
 
 
-GtkWidget *panel_place_menu_item_new   (gboolean use_image);
+GtkWidget *panel_place_menu_item_new   (gboolean use_image,
+					gboolean in_menubar);
 GtkWidget *panel_desktop_menu_item_new (gboolean use_image,
 				        gboolean in_menubar,
 					gboolean append_lock_logout);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]