Menu icons don't all have the same size

Bug #1806256 reported by Pierre Rudloff on 2018-12-02
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Garcon
Fix Released
Medium
garcon (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
Cosmic
Undecided
Unassigned
Disco
Undecided
Unassigned

Bug Description

Hello,

Since I upgraded to cosmic, some icons in the Xfce menu are too big. It only happens with specific apps like lftp or xsane.

ProblemType: Bug
DistroRelease: Ubuntu 18.10
Package: xfce4-panel 4.13.3-1ubuntu1
ProcVersionSignature: Ubuntu 4.18.0-11.12-generic 4.18.12
Uname: Linux 4.18.0-11-generic x86_64
ApportVersion: 2.20.10-0ubuntu13.1
Architecture: amd64
CurrentDesktop: XFCE
Date: Sun Dec 2 16:51:42 2018
InstallationDate: Installed on 2016-04-06 (970 days ago)
InstallationMedia: Xubuntu 16.04 LTS "Xenial Xerus" - Beta amd64 (20160323)
SourcePackage: xfce4-panel
UpgradeStatus: No upgrade log present (probably fresh install)

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;
 }

Created attachment 7269
The patch for scaling the icons

It's probably better here than in the comments.

In , Gitbot (gitbot) wrote :

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

Pushed your patch, thanks!

(In reply to Eric Koegel from comment #3)
> Pushed your patch, thanks!

This patch breaks quicklaunch default applications icons (buttons have disappeared).

(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!

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.

I upgraded my system from Xubuntu 18.04 64 bit x86 to version 18.10. Since version 18.10 I have this issue :(

On the same system I also have this issue: https://bugzilla.xfce.org/show_bug.cgi?id=14774.

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.

Pierre Rudloff (rudloff) wrote :
affects: xfce4-panel (Ubuntu) → garcon (Ubuntu)
Changed in garcon:
importance: Unknown → Medium
status: Unknown → Fix Released
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in garcon (Ubuntu):
status: New → Confirmed
Tim Ritberg (xpert-reactos) wrote :

This problem is very annoying.

Sean Davis (bluesabre) wrote :

This issue is resolved in garcon 0.6.2, available in 19.04
https://launchpad.net/ubuntu/+source/garcon/0.6.2-1

The package will need to be SRU'd back to 18.10 and 18.04

Changed in garcon (Ubuntu Disco):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.