[Xfce4-commits] [xfce/xfce4-panel] 27/73: ApplicationsMenu: fixed wrong initial icon size in some themes

noreply at xfce.org noreply at xfce.org
Sun Feb 26 16:34:08 CET 2017


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 b0782dc2bf199613aa93433f01a5af07f196ff96
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 90757b9..f1afb4a 100644
--- a/plugins/applicationsmenu/applicationsmenu.c
+++ b/plugins/applicationsmenu/applicationsmenu.c
@@ -67,6 +67,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
@@ -108,6 +111,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);
 
 
 
@@ -224,6 +228,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);
 }
 
 
@@ -400,6 +409,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;
 }
 
@@ -413,6 +424,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);
@@ -798,3 +821,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