[Xfce4-commits] [xfce/xfce4-panel] 01/02: windowmenu: Replace xfce_panel_image with plain Gtk+

noreply at xfce.org noreply at xfce.org
Sat Mar 18 11:28:28 CET 2017


This is an automated email from the git hooks/post-receive script.

ochosi pushed a commit to branch master
in repository xfce/xfce4-panel.

commit 930caa64b28772e457fe0df76e71d2a698ecfe3a
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Sat Mar 18 11:27:27 2017 +0100

    windowmenu: Replace xfce_panel_image with plain Gtk+
---
 plugins/windowmenu/windowmenu.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c
index 0ddc47c..5fa6864 100644
--- a/plugins/windowmenu/windowmenu.c
+++ b/plugins/windowmenu/windowmenu.c
@@ -255,7 +255,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
   g_signal_connect (G_OBJECT (plugin->button), "toggled",
       G_CALLBACK (window_menu_plugin_menu), plugin);
 
-  plugin->icon = xfce_panel_image_new_from_source ("user-desktop");
+  plugin->icon = gtk_image_new_from_icon_name ("user-desktop", GTK_ICON_SIZE_BUTTON);
   gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
   gtk_widget_show (plugin->icon);
 }
@@ -540,6 +540,9 @@ window_menu_plugin_size_changed (XfcePanelPlugin *panel_plugin,
           gtk_widget_set_size_request (GTK_WIDGET (plugin), -1, button_size);
         }
     }
+  /* Update the plugin's pixbuf size too */
+  if (plugin->screen != NULL)
+    window_menu_plugin_active_window_changed (plugin->screen, NULL, plugin);
 
   return TRUE;
 }
@@ -622,14 +625,16 @@ window_menu_plugin_active_window_changed (WnckScreen       *screen,
 {
   WnckWindow     *window;
   GdkPixbuf      *pixbuf;
-  XfcePanelImage *icon = XFCE_PANEL_IMAGE (plugin->icon);
+  gint            icon_size;
+  GtkWidget      *icon = GTK_WIDGET (plugin->icon);
   WnckWindowType  type;
 
   panel_return_if_fail (XFCE_IS_WINDOW_MENU_PLUGIN (plugin));
-  panel_return_if_fail (XFCE_IS_PANEL_IMAGE (icon));
+  panel_return_if_fail (GTK_IMAGE (icon));
   panel_return_if_fail (WNCK_IS_SCREEN (screen));
   panel_return_if_fail (plugin->screen == screen);
 
+  icon_size = xfce_panel_plugin_get_icon_size (plugin, GTK_WIDGET (plugin->button));
   /* only do this when the icon is visible */
   if (plugin->button_style == BUTTON_STYLE_ICON)
     {
@@ -645,18 +650,24 @@ window_menu_plugin_active_window_changed (WnckScreen       *screen,
           gtk_widget_set_tooltip_text (GTK_WIDGET (icon),
                                        wnck_window_get_name (window));
 
-          pixbuf = wnck_window_get_icon (window);
-          if (G_LIKELY (pixbuf != NULL))
-            xfce_panel_image_set_from_pixbuf (icon, pixbuf);
+          if (icon_size <= 31)
+            pixbuf = wnck_window_get_mini_icon (window);
           else
-            xfce_panel_image_set_from_source (icon, GTK_STOCK_MISSING_IMAGE);
+            pixbuf = wnck_window_get_icon (window);
+
+          if (G_LIKELY (pixbuf != NULL))
+            gtk_image_set_from_pixbuf (icon, pixbuf);
+          else {
+            gtk_image_set_from_icon_name (icon, GTK_STOCK_MISSING_IMAGE, icon_size);
+            gtk_image_set_pixel_size (icon, icon_size);
+          }
         }
       else
         {
           show_desktop_icon:
 
           /* desktop is shown right now */
-          xfce_panel_image_set_from_source (icon, "user-desktop");
+          gtk_image_set_from_icon_name (icon, "user-desktop", icon_size);
           gtk_widget_set_tooltip_text (GTK_WIDGET (icon), _("Desktop"));
         }
     }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list