[Xfce4-commits] [xfce/xfce4-panel] 01/01: ApplicationsMenu: fixed wrong initial icon size in some themes
noreply at xfce.org
noreply at xfce.org
Thu May 29 00:07:07 CEST 2014
This is an automated email from the git hooks/post-receive script.
andrzejr pushed a commit to branch master
in repository xfce/xfce4-panel.
commit 85e08f7a920e5560cab89c3a326edf7be19950fe
Author: Andrzej <ndrwrdck at gmail.com>
Date: Wed May 28 23:06:58 2014 +0100
ApplicationsMenu: fixed wrong initial icon size in some themes
---
plugins/applicationsmenu/applicationsmenu.c | 35 +++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/plugins/applicationsmenu/applicationsmenu.c b/plugins/applicationsmenu/applicationsmenu.c
index 94d569d..70f53b5 100644
--- a/plugins/applicationsmenu/applicationsmenu.c
+++ b/plugins/applicationsmenu/applicationsmenu.c
@@ -68,6 +68,9 @@ struct _ApplicationsMenuPlugin
/* temp item we store here when the
* properties dialog is opened */
GtkWidget *dialog_icon;
+
+ gulong style_set_id;
+ gulong screen_changed_id;
};
enum
@@ -109,6 +112,7 @@ static gboolean applications_menu_plugin_menu (GtkWidget
static void applications_menu_plugin_menu_deactivate (GtkWidget *menu,
GtkWidget *button);
static void applications_menu_plugin_set_garcon_menu (ApplicationsMenuPlugin *plugin);
+static void applications_menu_button_theme_changed (ApplicationsMenuPlugin *plugin);
@@ -225,6 +229,11 @@ applications_menu_plugin_init (ApplicationsMenuPlugin *plugin)
plugin->menu = garcon_gtk_menu_new (NULL);
g_signal_connect (G_OBJECT (plugin->menu), "selection-done",
G_CALLBACK (applications_menu_plugin_menu_deactivate), plugin->button);
+
+ plugin->style_set_id = g_signal_connect_swapped (G_OBJECT (plugin->button), "style-set",
+ G_CALLBACK (applications_menu_button_theme_changed), plugin);
+ plugin->screen_changed_id = g_signal_connect_swapped (G_OBJECT (plugin->button), "screen-changed",
+ G_CALLBACK (applications_menu_button_theme_changed), plugin);
}
@@ -401,6 +410,8 @@ applications_menu_plugin_construct (XfcePanelPlugin *panel_plugin)
gtk_widget_show (plugin->button);
+ applications_menu_plugin_size_changed (panel_plugin,
+ xfce_panel_plugin_get_size (panel_plugin));
plugin->is_constructed = TRUE;
}
@@ -414,6 +425,18 @@ applications_menu_plugin_free_data (XfcePanelPlugin *panel_plugin)
if (plugin->menu != NULL)
gtk_widget_destroy (plugin->menu);
+ if (plugin->style_set_id != 0)
+ {
+ g_signal_handler_disconnect (plugin->button, plugin->style_set_id);
+ plugin->style_set_id = 0;
+ }
+
+ if (plugin->screen_changed_id != 0)
+ {
+ g_signal_handler_disconnect (plugin->button, plugin->screen_changed_id);
+ plugin->screen_changed_id = 0;
+ }
+
g_free (plugin->button_title);
g_free (plugin->button_icon);
g_free (plugin->custom_menu_file);
@@ -786,3 +809,15 @@ applications_menu_plugin_menu (GtkWidget *button,
return TRUE;
}
+
+
+
+static void
+applications_menu_button_theme_changed (ApplicationsMenuPlugin *plugin)
+{
+ XfcePanelPlugin *panel_plugin = XFCE_PANEL_PLUGIN (plugin);
+
+ applications_menu_plugin_size_changed (panel_plugin,
+ xfce_panel_plugin_get_size (panel_plugin));
+}
+
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list