! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
[PATCH] some menu icons are too big
Status:
RESOLVED: FIXED

Comments

Description Stefan Berzl 2017-08-15 22:50:13 CEST
Created attachment 7268 
A screenshot of the issue

Some packages only provide icons in sizes much bigger than the standard
GTK menu size of 16px.

The clipboard manager qlipper for example provides the following icon:
/usr/share/icons/hicolor/128x128/apps/qlipper.png

In GTK 3.22.18 the function gtk_image_new_from_icon_name when given
GTK_ICON_SIZE_MENU as second argument still returns an image with 128x128.

The patch I have supplied uses existing code to scale such an image. 

diff --git a/garcon-gtk/garcon-gtk-menu.c b/garcon-gtk/garcon-gtk-menu.c
index 41990f2..f31a1ed 100644
--- a/garcon-gtk/garcon-gtk-menu.c
+++ b/garcon-gtk/garcon-gtk-menu.c
@@ -650,7 +650,11 @@ garcon_gtk_menu_load_icon (const gchar *icon_name)
   gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &w, &h);
   size = MIN (w, h);
 
-  if (! gtk_icon_theme_has_icon (icon_theme, icon_name))
+  if (gtk_icon_theme_has_icon (icon_theme, icon_name))
+    {
+	  pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, size, 0, NULL);;
+    }
+  else
     {
       if (g_path_is_absolute (icon_name))
         {
@@ -684,22 +688,23 @@ garcon_gtk_menu_load_icon (const gchar *icon_name)
               g_free (name);
             }
         }
+    }
 
-      /* Turn the pixbuf into a gtk_image */
-      if (G_LIKELY (pixbuf))
-        {
-          /* scale the pixbuf down if it needs it */
-          GdkPixbuf *tmp = gdk_pixbuf_scale_simple (pixbuf, w, h, GDK_INTERP_BILINEAR);
-          g_object_unref (pixbuf);
-          pixbuf = tmp;
+  /* Turn the pixbuf into a gtk_image */
+  if (G_LIKELY (pixbuf))
+    {
+      /* scale the pixbuf down if it needs it */
+      GdkPixbuf *pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, w, h, GDK_INTERP_BILINEAR);
+      g_object_unref (G_OBJECT (pixbuf));
 
-          image = gtk_image_new_from_pixbuf (pixbuf);
-          g_object_unref (G_OBJECT (pixbuf));
-        }
+      image = gtk_image_new_from_pixbuf (pixbuf_scaled);
+      g_object_unref (G_OBJECT (pixbuf_scaled));
+    }
+  else
+    {
+	  /* display the placeholder at least */
+	  image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
     }
-
-  if (image == NULL)
-    image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
 
   return image;
 }
Comment 1 Stefan Berzl 2017-08-15 23:01:45 CEST
Created attachment 7269 
The patch for scaling the icons

It's probably better here than in the comments.
Comment 2 Git Bot editbugs 2017-08-21 17:40:11 CEST
Stefan Berzl referenced this bugreport in commit 4387496fe332a50945e7db76bc2196b419656fe3

fix: some menu icons are too big (Bug #13785)

https://git.xfce.org/xfce/garcon/commit?id=4387496fe332a50945e7db76bc2196b419656fe3
Comment 3 Eric Koegel editbugs 2017-08-21 17:41:14 CEST
Pushed your patch, thanks!
Comment 4 Olivier Duchateau 2017-08-24 19:01:07 CEST
(In reply to Eric Koegel from comment #3)
> Pushed your patch, thanks!

This patch breaks quicklaunch default applications icons (buttons have disappeared).
Comment 5 Olivier Duchateau 2017-08-25 18:59:28 CEST
(In reply to Olivier Duchateau from comment #4)
> (In reply to Eric Koegel from comment #3)
> > Pushed your patch, thanks!
> 
> This patch breaks quicklaunch default applications icons (buttons have
> disappeared).

I find workaround for Xfdashboard (where quicklaunch buttons have disappeared) and now everything works fine!
Comment 6 Stefan Berzl 2017-08-25 23:12:10 CEST
How do you suppose the scalling of the images has anything to do with the new return type
from libxfconf? The change in still hasn't permeated into every part of the software.
The settings-editor for example can't display arrays because it also assumes the old type.
Comment 7 Manuel Grießmayr 2018-10-19 22:09:57 CEST
I upgraded my system from Xubuntu 18.04 64 bit x86 to version 18.10. Since version 18.10 I have this issue :(
Comment 8 Manuel Grießmayr 2018-10-19 22:29:55 CEST
On the same system I also have this issue: https://bugzilla.xfce.org/show_bug.cgi?id=14774.
Comment 9 Manuel Grießmayr 2018-11-07 19:07:08 CET
Here is some information which may help to reproduce my problem. I have not installed Firefox via Synaptic but instead downloaded it via the mozilla page. I only had to extract the compressed file and then launch the executable. So my Firefox is installed under /home/myname/bin/firefox-release/. Then I created a .desktop file under /home/myname/.local/share/applications/ and set the icon name to "firefox quantum". This icon can be found under /home/myname/.local/share/icons/hicolor/128x128/apps/ and has a width and height of 128 pixels.

Bug #13785

Reported by:
Stefan Berzl
Reported on: 2017-08-15
Last modified on: 2018-11-07

People

Assignee:
Jannis Pohlmann
CC List:
3 users

Version

Attachments

A screenshot of the issue (121.60 KB, image/png)
2017-08-15 22:50 CEST , Stefan Berzl
no flags
The patch for scaling the icons (1.74 KB, patch)
2017-08-15 23:01 CEST , Stefan Berzl
no flags

Additional information