After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 737000 - Some icon themes broken on 3.13.92
Some icon themes broken on 3.13.92
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: .General
3.13.x
Other Linux
: Normal major
: ---
Assigned To: gtk-bugs
gtk-bugs
: 731201 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-09-20 00:52 UTC by pimpbillin
Modified: 2014-10-13 08:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GtkIconTheme: Repair symbolic fallback with rtl/ltr (2.06 KB, patch)
2014-09-21 18:49 UTC, Matthias Clasen
committed Details | Review

Description pimpbillin 2014-09-20 00:52:29 UTC
Many icon themes aren't working properly with gnome-shell after upgrade from 3.13.91 to 3.13.92. 

The issue isn't apparent with Adwaita, but many themes like Numix-Circle from
*https://github.com/numixproject/numix-icon-theme-circle and others are broken. Some symbolic icons (arrow pointers, battery icon) on top panel are replaced by full size icons.

I believe this only happens when the icons should be inherited from other theme, e.g. numix-circle should inherit symbolic icons from base numix theme, but full-size icons from numix-circle are displayed.

screenshots of the issue: https://db.tt/pk5T4yah https://db.tt/pSNrEYVA
borrowed from this post: https://bbs.archlinux.org/viewtopic.php?pid=1458048#p1458048

This was apparently caused by commit e04e507659027a5bb6fed24871539cc6ce56b96f
"texture-cache: Use LTR/RTL icon lookup flags"
reverting it fixes the issue.
Comment 1 André Klapper 2014-09-20 14:30:04 UTC
(In reply to comment #0)
> This was apparently caused by commit e04e507659027a5bb6fed24871539cc6ce56b96f
> "texture-cache: Use LTR/RTL icon lookup flags"
> reverting it fixes the issue.

CC'ing its author (Jasper).
Comment 2 Jasper St. Pierre (not reading bugmail) 2014-09-20 14:48:06 UTC
Is the battery icon in Adwaita named something with -symbolic-ltr ?
Comment 3 Jasper St. Pierre (not reading bugmail) 2014-09-20 14:53:23 UTC
This is actually going to be an issue for all RTL users. It's a GTK+ bug. I'm not sure why it's affecting LTR users though.
Comment 4 Matthias Clasen 2014-09-20 15:34:48 UTC
And I assume by full-size you mean full-color?
Comment 5 pimpbillin 2014-09-20 19:04:06 UTC
Sorry this was very late night bug report so it may have not been the clearest. I try to explain the buggy behavior a little better:

I only tested this properly with Numix-Circle, which basically consists of 'base' Numix theme, which has all the symbolic icons, folders, mimes etc. and the Numix-Circle theme which has application icons and some other stuff.

If you select to use the base Numix icon theme, everything looks like it should (numix themed battery icons and pointer arrows on top panel), but if you use Numix-Circle, all icons that should be inherited from base Numix theme are replaced by full-color icons from Numix-Circle.

So, in my case at least the battery icon and arrow pointers that should come from base Numix theme, are replaced with non-symbolic icons from Numix-Circle.

I think they are also full-size icons scaled to small space, but that's probably only because Numix-circle mostly only has 48px and scalable icons.

I'm using LTR locale, and I haven't seen any gtk+ applications effected by this bug, only gnome-shell.
Comment 6 pimpbillin 2014-09-20 23:24:03 UTC
I also checked that there are no battery icons named anything *-ltr* in Adwaita, gnome or Numix icon themes.
Comment 7 Matthias Clasen 2014-09-21 18:12:26 UTC
I've changed the tests/testicontheme test in gtk+ to pass GTK_ICON_LOOKUP_DIR_LTR/RTL, and with that, and the numix themes, I get the expected outcome:

./testicontheme lookup Numix-Circle battery-empty-charging-symbolic
icon for battery-empty-charging-symbolic at 48x48@1x is /usr/share/icons/Numix/scalable/status/battery-empty-charging-symbolic.svg
Base size: 16, Scale: 1
Pixbuf size: 48x48

RTL=1 ./testicontheme lookup Numix-Circle battery-empty-charging-symbolic
icon for battery-empty-charging-symbolic at 48x48@1x is /usr/share/icons/Numix/scalable/status/battery-empty-charging-symbolic.svg
Base size: 16, Scale: 1
Pixbuf size: 48x48
Comment 8 Matthias Clasen 2014-09-21 18:18:07 UTC
Just looking at the top bar with Numix-Circle quickly, that white square on a red circle is actually the application icon for the pan newsreader. Whats happening is that numix is lacking the pan-start/end/up/down-symbolic icons that we are now using for arrows, and fallback kicks in and chooses the pan icon instead.
Comment 9 Matthias Clasen 2014-09-21 18:28:38 UTC
Adding the generic fallback flag, I can actually reproduce this:

./testicontheme lookup Numix-Circle pan-start-symbolic
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
icon for pan-start-symbolic at 48x48@1x is /usr/share/icons/Numix-Circle/48x48/apps/pan.svg
Base size: 48, Scale: 1
Pixbuf size: 48x48

Without generic fallback, things work out better:

./testicontheme lookup Numix-Circle pan-start-symbolic
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
icon for pan-start-symbolic at 48x48@1x is /usr/share/icons/Adwaita/48x48/actions/pan-start-symbolic.symbolic.png
Base size: 48, Scale: 1
Pixbuf size: 48x48
Comment 10 Christoph Reiter (lazka) 2014-09-21 18:37:30 UTC
Could bug 731201 be related?
Comment 11 Matthias Clasen 2014-09-21 18:49:54 UTC
Created attachment 286750 [details] [review]
GtkIconTheme: Repair symbolic fallback with rtl/ltr

For symbolic icons, we prefer symbolics in inherited themes over
generic icons in the theme itself. So far this was implemented
by looking at icon_name[0] and looking that up in inherited themes
if it is symbolic. But with automatic rtl/ltr handling, the first
icon  name will always have an -rtl or -ltr suffix, and an icon
with that suffix is not going to exist in most cases. To fix this,
look for shorter icon names too, as long as they are still symbolic.
Comment 12 Matthias Clasen 2014-09-21 18:50:54 UTC
I don't want to commit this before we have testcases for inheritance vs generic behavior.
Comment 13 Matthias Clasen 2014-09-21 20:35:35 UTC
Attachment 286750 [details] pushed as 964c202 - GtkIconTheme: Repair symbolic fallback with rtl/ltr
Comment 14 Christoph Reiter (lazka) 2014-09-22 07:40:21 UTC
*** Bug 731201 has been marked as a duplicate of this bug. ***