Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
gnome-panel
gnome-panel-allow-smaller-panels.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-panel-allow-smaller-panels.patch of Package gnome-panel
From cff8f9f22a031ca1ccab06a1460f8984d97f871f Mon Sep 17 00:00:00 2001 From: Vincent Untz <vuntz@gnome.org> Date: Mon, 17 Oct 2011 13:07:15 +0200 Subject: [PATCH 1/4] panel: Fix panels forced to be big because of user menu The user menu item was created with some functions that change the way the size of the menu item is negotiated, and we don't want this when this user menu item is in the user menu applet (we want this when it's in the main menu, though). Helps with https://bugzilla.gnome.org/show_bug.cgi?id=661790 --- gnome-panel/menu.c | 2 +- gnome-panel/panel-menu-items.c | 48 ++++++++++++++++++++++++++------------- gnome-panel/panel-menu-items.h | 1 + gnome-panel/panel-user-menu.c | 2 +- 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/gnome-panel/menu.c b/gnome-panel/menu.c index 4077940..497b7fd 100644 --- a/gnome-panel/menu.c +++ b/gnome-panel/menu.c @@ -1388,7 +1388,7 @@ main_menu_append (GtkWidget *main_menu, gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), item); gtk_widget_show (item); - item = panel_desktop_menu_item_new (TRUE, FALSE); + item = panel_desktop_menu_item_new (TRUE, FALSE, FALSE); panel_desktop_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-items.c b/gnome-panel/panel-menu-items.c index 0e48181..a58801d 100644 --- a/gnome-panel/panel-menu-items.c +++ b/gnome-panel/panel-menu-items.c @@ -48,6 +48,7 @@ #include <libpanel-util/panel-glib.h> #include <libpanel-util/panel-keyfile.h> #include <libpanel-util/panel-launch.h> +#include <libpanel-util/panel-menu-item.h> #include <libpanel-util/panel-session-manager.h> #include <libpanel-util/panel-show.h> @@ -1693,10 +1694,12 @@ panel_desktop_menu_item_on_presence_changed (PanelSessionManager *ma GtkWidget * panel_desktop_menu_item_new (gboolean use_image, + gboolean in_menubar, gboolean append_lock_logout) { PanelDesktopMenuItem *menuitem; char *name; + const char *icon_name; #ifdef HAVE_TELEPATHY_GLIB PanelSessionManager *manager; #endif @@ -1704,27 +1707,40 @@ panel_desktop_menu_item_new (gboolean use_image, menuitem = g_object_new (PANEL_TYPE_DESKTOP_MENU_ITEM, NULL); name = panel_util_get_user_name (); +#ifdef HAVE_TELEPATHY_GLIB + icon_name = PANEL_ICON_USER_AVAILABLE; +#else + icon_name = PANEL_ICON_COMPUTER; +#endif + + /* if we're in a menubar, we don't want to use setup_* as it changes + * the size requests and can make the panels bigger than we'd like */ + 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); + } - if (use_image) { #ifdef HAVE_TELEPATHY_GLIB - setup_menu_item_with_icon (GTK_WIDGET (menuitem), - panel_menu_icon_get_size (), - PANEL_ICON_USER_AVAILABLE, - NULL, NULL, - name); + if (use_image) gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menuitem), TRUE); -#else - setup_menu_item_with_icon (GTK_WIDGET (menuitem), - panel_menu_icon_get_size (), - PANEL_ICON_COMPUTER, - NULL, NULL, - name); #endif - } else - setup_menuitem (GTK_WIDGET (menuitem), - GTK_ICON_SIZE_INVALID, NULL, - name); g_free (name); diff --git a/gnome-panel/panel-menu-items.h b/gnome-panel/panel-menu-items.h index 44c000c..86d766b 100644 --- a/gnome-panel/panel-menu-items.h +++ b/gnome-panel/panel-menu-items.h @@ -80,6 +80,7 @@ GType panel_desktop_menu_item_get_type (void) G_GNUC_CONST; GtkWidget *panel_place_menu_item_new (gboolean use_image); GtkWidget *panel_desktop_menu_item_new (gboolean use_image, + gboolean in_menubar, gboolean append_lock_logout); void panel_place_menu_item_set_panel (GtkWidget *item, diff --git a/gnome-panel/panel-user-menu.c b/gnome-panel/panel-user-menu.c index 2ff36f4..fa68dba 100644 --- a/gnome-panel/panel-user-menu.c +++ b/gnome-panel/panel-user-menu.c @@ -51,7 +51,7 @@ panel_user_menu_init (PanelUserMenu *usermenu) usermenu->priv->info = NULL; - usermenu->priv->desktop_item = panel_desktop_menu_item_new (TRUE, TRUE); + usermenu->priv->desktop_item = panel_desktop_menu_item_new (TRUE, TRUE, TRUE); gtk_menu_shell_append (GTK_MENU_SHELL (usermenu), usermenu->priv->desktop_item); gtk_widget_show (usermenu->priv->desktop_item); -- 1.7.7 From 743b3deaa1c7b4caac2d4fc74f5796af5e136880 Mon Sep 17 00:00:00 2001 From: Vincent Untz <vuntz@gnome.org> Date: Mon, 17 Oct 2011 13:15:05 +0200 Subject: [PATCH 2/4] 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 | 37 ++++++++++++++++++++++++++----------- gnome-panel/panel-menu-items.h | 3 ++- 4 files changed, 30 insertions(+), 14 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); -- 1.7.7 From 12b371c4211ec5d17cf799cb3ee628ffd577cbf6 Mon Sep 17 00:00:00 2001 From: Vincent Untz <vuntz@gnome.org> Date: Mon, 17 Oct 2011 13:41:50 +0200 Subject: [PATCH 3/4] panel: Change default size of icon in menu bar & user menu applets to 16 This makes it possible to make the panel smaller than it used to be (the size of the icon was the blocker) and it also makes the icon consistent with the notification area icons. Note that this size doesn't apply to the user menu when it appears in the main menu (as opposed to the user menu applet). This can be changed in settings.ini (see GtkSettings doc) with: gtk-icon-sizes = panel-menu-bar=16,16 This used to be called panel-foobar, but that name was horrible. https://bugzilla.gnome.org/show_bug.cgi?id=660846 https://bugzilla.gnome.org/show_bug.cgi?id=661790 --- gnome-panel/panel-menu-bar-object.c | 18 ++++++++++++++++++ gnome-panel/panel-menu-bar-object.h | 2 ++ gnome-panel/panel-menu-bar.c | 19 +------------------ gnome-panel/panel-menu-items.c | 14 ++++++++++---- 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/gnome-panel/panel-menu-bar-object.c b/gnome-panel/panel-menu-bar-object.c index fe0fd64..9752f2a 100644 --- a/gnome-panel/panel-menu-bar-object.c +++ b/gnome-panel/panel-menu-bar-object.c @@ -49,6 +49,19 @@ enum { static void panel_menu_bar_object_update_text_gravity (PanelMenuBarObject *menubar); static void panel_menu_bar_object_update_orientation (PanelMenuBarObject *menubar); +/* themeable size - "panel-menu-bar" -- This is only used for the icon of the + * Applications item in the menu bar. To set it, use this in gtk+'s + * settings.ini: "gtk-icon-sizes = panel-menu-bar=16,16" */ +#define PANEL_DEFAULT_MENU_BAR_OBJECT_ICON_SIZE 16 + +static GtkIconSize panel_menu_bar_object_icon_size = 0; + +GtkIconSize +panel_menu_bar_object_icon_get_size (void) +{ + return panel_menu_bar_object_icon_size; +} + static void panel_menu_bar_object_init (PanelMenuBarObject *menubar) { @@ -172,6 +185,11 @@ panel_menu_bar_object_class_init (PanelMenuBarObjectClass *klass) PANEL_TYPE_ORIENTATION, PANEL_ORIENTATION_TOP, G_PARAM_READWRITE)); + + if (panel_menu_bar_object_icon_size == 0) + panel_menu_bar_object_icon_size = gtk_icon_size_register ("panel-menu-bar", + PANEL_DEFAULT_MENU_BAR_OBJECT_ICON_SIZE, + PANEL_DEFAULT_MENU_BAR_OBJECT_ICON_SIZE); } static gboolean diff --git a/gnome-panel/panel-menu-bar-object.h b/gnome-panel/panel-menu-bar-object.h index 9091164..351321e 100644 --- a/gnome-panel/panel-menu-bar-object.h +++ b/gnome-panel/panel-menu-bar-object.h @@ -63,6 +63,8 @@ void panel_menu_bar_object_set_orientation (PanelMenuBarObject * PanelOrientation orientation); PanelOrientation panel_menu_bar_object_get_orientation (PanelMenuBarObject *menubar); +GtkIconSize panel_menu_bar_object_icon_get_size (void); + G_END_DECLS #endif /* __PANEL_MENU_BAR_OBJECT_H__ */ diff --git a/gnome-panel/panel-menu-bar.c b/gnome-panel/panel-menu-bar.c index be037da..0988144 100644 --- a/gnome-panel/panel-menu-bar.c +++ b/gnome-panel/panel-menu-bar.c @@ -58,18 +58,6 @@ struct _PanelMenuBarPrivate { GtkWidget *places_item; }; -/* themeable size - "panel-foobar" -- This is only used for the icon of the - * Applications item in the menu bar */ -#define PANEL_DEFAULT_MENU_BAR_ICON_SIZE 24 - -static GtkIconSize panel_menu_bar_icon_size = 0; - -static GtkIconSize -panel_menu_bar_icon_get_size (void) -{ - return panel_menu_bar_icon_size; -} - static gboolean panel_menu_bar_reinit_tooltip (GtkWidget *widget, PanelMenuBar *menubar) @@ -135,7 +123,7 @@ panel_menu_bar_init (PanelMenuBar *menubar) gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item), _("Applications")); menubar->priv->image = gtk_image_new_from_icon_name (PANEL_ICON_MAIN_MENU, - panel_menu_bar_icon_get_size ()); + panel_menu_bar_object_icon_get_size ()); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar->priv->applications_item), menubar->priv->applications_menu); @@ -207,11 +195,6 @@ panel_menu_bar_class_init (PanelMenuBarClass *klass) "Whether the menubar icon is visible", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - - if (panel_menu_bar_icon_size == 0) - panel_menu_bar_icon_size = gtk_icon_size_register ("panel-foobar", - PANEL_DEFAULT_MENU_BAR_ICON_SIZE, - PANEL_DEFAULT_MENU_BAR_ICON_SIZE); } void diff --git a/gnome-panel/panel-menu-items.c b/gnome-panel/panel-menu-items.c index 821e638..9b84e18 100644 --- a/gnome-panel/panel-menu-items.c +++ b/gnome-panel/panel-menu-items.c @@ -58,6 +58,7 @@ #include "panel-globals.h" #include "panel-icon-names.h" #include "panel-lockdown.h" +#include "panel-menu-bar-object.h" #include "panel-recent.h" #include "panel-stock-icons.h" #include "panel-util.h" @@ -100,6 +101,7 @@ struct _PanelPlaceMenuItemPrivate { struct _PanelDesktopMenuItemPrivate { GtkWidget *menu; PanelWidget *panel; + GtkIconSize icon_size; #ifdef HAVE_TELEPATHY_GLIB GList *presence_items; @@ -1632,7 +1634,7 @@ panel_place_menu_item_new (gboolean use_image, if (use_image) { GtkWidget *image; image = gtk_image_new_from_icon_name (icon_name, - panel_menu_icon_get_size ()); + panel_menu_bar_object_icon_get_size ()); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); } @@ -1686,7 +1688,7 @@ panel_desktop_menu_item_on_presence_changed (PanelSessionManager *ma * menu */ if (image) { gtk_image_set_from_icon_name (GTK_IMAGE (image), - icon, panel_menu_icon_get_size ()); + icon, desktop_item->priv->icon_size); } for (l = desktop_item->priv->presence_items; l != NULL; l = l->next) { @@ -1732,17 +1734,21 @@ panel_desktop_menu_item_new (gboolean use_image, * the size requests and can make the panels bigger than we'd like */ if (in_menubar) { gtk_menu_item_set_label (GTK_MENU_ITEM (menuitem), name); + menuitem->priv->icon_size = panel_menu_bar_object_icon_get_size (); + if (use_image) { GtkWidget *image; image = gtk_image_new_from_icon_name (icon_name, - panel_menu_icon_get_size ()); + menuitem->priv->icon_size); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); } } else { + menuitem->priv->icon_size = panel_menu_icon_get_size (); + if (use_image) setup_menu_item_with_icon (GTK_WIDGET (menuitem), - panel_menu_icon_get_size (), + menuitem->priv->icon_size, icon_name, NULL, NULL, name); else -- 1.7.7 From 9042d29697038c78e4c8da32e8a9f5a136a90bea Mon Sep 17 00:00:00 2001 From: Vincent Untz <vuntz@gnome.org> Date: Mon, 17 Oct 2011 14:34:42 +0200 Subject: [PATCH 4/4] panel: Doh, fix addition of non-existing include --- gnome-panel/panel-menu-items.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/gnome-panel/panel-menu-items.c b/gnome-panel/panel-menu-items.c index 9b84e18..1882ad71 100644 --- a/gnome-panel/panel-menu-items.c +++ b/gnome-panel/panel-menu-items.c @@ -48,7 +48,6 @@ #include <libpanel-util/panel-glib.h> #include <libpanel-util/panel-keyfile.h> #include <libpanel-util/panel-launch.h> -#include <libpanel-util/panel-menu-item.h> #include <libpanel-util/panel-session-manager.h> #include <libpanel-util/panel-show.h> -- 1.7.7
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor