nicklan / pnmixer

Volume mixer for the system tray
GNU General Public License v3.0
152 stars 32 forks source link

Pop menu icons are missing #145

Closed SilverRainZ closed 8 years ago

SilverRainZ commented 8 years ago

Arch Linux x86_64 GTK 3.20.9 Icons Theme: Adwaita Version: 0.7-rc1or later, with gtk3 (gtk2 version is not tested yet.)

This problem doesn't appear in 0.6.1

2016-09-16-145010_2966x900_scrot

elboulangero commented 8 years ago

Debian x86_64 GTK 3.21.5-3 Icons Theme: Adwaita Version: current master, with gtk3

No problem on my side, I see every icons, in 0.6.1 as in current dev version.

screenshot_2016-09-16_22-56-30

Can you please run with -d option and see if you have a line such as:

Gtk3 workaround: resizing images...

BTW, if you grep for this debug message in the code, you will find a place where we actually access every icon that are in the popup menu. It's probably the best place to start investigating...

SilverRainZ commented 8 years ago

In 0.6.1:

data/ui/popup_window-gtk3.glade:    <property name="stock">gtk-refresh</property>

In 0.7-rc1:

data/ui/popup-menu-gtk3.glade:                            <property name="icon_name">gtk-refresh</property>

I think gtk-refresh is a stock id but not an icon name.

On my Arch Linux, adwaita-icon-theme 3.20-2 doesn't provide icon gtk-refresh, it should be view-refresh. Similarly, for stock id gtk-quit, its corresponding icon name should be application-exit.

But, it is quite confusing that some gtk icon themes still provie gtk-refresh :-/

# Packages provide `gtk-refresh`
/ la @ la-arch 10:01 -> ~/pkg/aur/pnmixer-gtk3/src/pnmixer-0.7-rc1 git:(master) x 
\ $ pkgfile gtk-refresh.png    
extra/gnome-icon-theme
extra/gtkmm-docs
extra/gtkmm3-docs
community/faenza-icon-theme
community/faience-icon-theme
community/human-icon-theme
community/lxde-icon-theme
community/mate-icon-theme
community/mate-icon-theme-faenza
community/tangerine-icon-theme
# Packages provide `view-refresh`
/ la @ la-arch 10:02 ->[1] ~/pkg/aur/pnmixer-gtk3/src/pnmixer-0.7-rc1 git:(master) x 
\ $ pkgfile view-refresh.png   
extra/adwaita-icon-theme
extra/fvwm-crystal
extra/gnome-icon-theme
extra/gnome-themes-standard
extra/gtk2
extra/kdenetwork-kget
extra/oxygen-icons
community/anki
community/calibre
community/doublecmd-gtk2
community/doublecmd-qt
community/faenza-icon-theme
community/faience-icon-theme
community/gmtp
community/human-icon-theme
community/kadu
community/lxde-icon-theme
community/mate-icon-theme
community/mate-icon-theme-faenza
community/mate-themes
community/owncloud
community/playonlinux
community/tangerine-icon-theme
multilib/gens-gs

So, there are some inconsistens between different icon themes, how to do ?

elboulangero commented 8 years ago

In my Adwaita theme, there's no gtk-refresh icon.

$ find /usr/share/icons/Adwaita/ -name 'gtk-*' | wc -l
0

But somehow, when I select Adwaita theme, I still have icons displayed. So it's a bit mysterious, I don't know what kind of magic trick GTK uses, but it finds icons anyway...

elboulangero commented 8 years ago

The change from stockto icon-name was done because of depreciation of stockproperty.

https://developer.gnome.org/gtk3/stable/GtkImage.html#GtkImage--stock

Now, with further research, I realize that changing the name of the property was not enough, we should have also change the name of the icon, and we didn't do that for every icon. It's all documented here:

https://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html

elboulangero commented 8 years ago

I changed the icon names accordingly, it should be OK now, please try and confirm. Thx for reporting bug :)

elboulangero commented 8 years ago

Btw, I noticed that we still use deprecated icons gtk-ok, gtk-cancel and gtk-apply (in Preferences dialog). Are these icons displayed on your machine @LastAvenger ?

If you look at Freedesktop Icon Naming spec 0.8, there are dialog-ok and dialog-cancel that can be used as a replacement. Ref: https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-0.8.html

Now, if you look at Freedesktop Icon Naming spec 0.8.9 (the latest at the moment), you'll see that these icons have been removed. https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-0.8.90.html

I grepped quickly on my machines, dialog-ok and dialog-cancel exist for some icon themes, and don't exist for other themes. Adwaita doesn't provide it. So, using these icon names is definitely a bad idea...

hasufell commented 8 years ago

Is this sufficiently resolved?

SilverRainZ commented 8 years ago

@elboulangero There is no gtk-ok or gtk-cancel on my machine, but they displayed well.

@hasufell yes.

elboulangero commented 8 years ago

Cool, let's close this.

@LastAvenger I do have some themes that provide gtk-okand gtk-cancel: Vibrancy, Faenza, HighContrast, to name it.