davidedmundson / xembed-sni-proxy

Convert XEmbed system tray icons to SNI icons
GNU General Public License v2.0
32 stars 6 forks source link

No icon from wine apps #15

Closed Crazy-Hopper closed 8 years ago

Crazy-Hopper commented 8 years ago

Hi, I use TeamViewer in linux which is run through wine. In case when there is no selection manager, wine creates its own window titled "Wine System Tray" with the icon inside. Using "native" xembed selection manager like wmsystemtray results in correct icon for TeamViewer. But with xembed-sni-proxy there is no icon created at all. Even though console output states it detects the new window, embeds it and damage watch is started. Could you please take a look whether you get the same results as I do?

tehnick commented 8 years ago

@Crazy-Hopper Try to build 77d78c3 or f989182.

I can reproduce your bug with in xembed-sni-proxy/0~git20151022-5157e6c-1 from Debian experimental. But with xembed-sni-proxy/0~git20151005-77d78c3-2 from Debian testing TeamViewer works fine: there is fully functional icon it SNI (and it is not even transparent but with correct icon).

Crazy-Hopper commented 8 years ago

Thank you, Boris! Indeed f989182 was the last working commit. The next one (e8ada87) changed the return value of SNIProxy::Id(). Reverting it back to how it was and applying to the master HEAD brings the TeamViewer icon back in. Well, with the glitch of an empty icon right until the place receives the first mouse click, then the icon is drawn correctly.

davidedmundson commented 8 years ago

Interesting. I might change it back then

Can you run "xprop" and click on the main teamviewer window for me?

Crazy-Hopper commented 8 years ago

You probably meant the "Wine System Tray" window? Then this is it:

WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 3, 3, 31, 4
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 31, 4
_NET_WM_DESKTOP(CARDINAL) = 3
_NET_WM_ICON_GEOMETRY(CARDINAL) = 702, 1024, 376, 50
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_ACTIVITIES(STRING) = "f42b61a0-eae1-4cee-a8ff-71c01ba2395f"
_NET_WM_STATE(ATOM) = 
_NET_WM_ICON(CARDINAL) =        Icon (32 x 32):

                   ░░░░░░░░░░           
                  ░░        ░░          
                  ░░░░░  ░░░░░          
                  ░          ░          
                  ░          ░          
                             ░          
                 ░         ░  ░
                 ░      ░░░░░ ░
                 ░    ░▒▒▒░░░ ░
                 ░▒░░░▓▓▓▓▓▓▓░░
                 ▒▓░░░▓▓▓▒▒▒▒▒░
                 ▒▓░░░▒▒░░░▒▒▒░
                 ▒▓░░▒▓▓▓▓▓▓▓▒░
                 ░▓▓░▒▓▓▓▓▓▓▓░░
                 ░▒▓▒▒▓▓▓▓▓▓▒░░
                  ░▒▓▓▓▓▓▓▓▒░░
                   ░▒▒▓▓▓▒░░░
                    ░░░▒░░░░
                     ░░░░░░
                      ░░▒░
                      ░░░░
                       ░░
                       ░░
                       ░░
                       ░░
                     ░░░░░░
                   ░   ░░   ░
                  ░   ░░░░░  ░
                  ░░        ░░
                    ░░░░░░░░

_NET_WM_NAME(UTF8_STRING) = "Wine System Tray"
WM_ICON_NAME(STRING) = "Wine System Tray"
WM_NAME(STRING) = "Wine System Tray"
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                Initial state is Normal State.
                bitmap id # to use for icon: 0x4e001ee
                bitmap id # of mask for icon: 0x4e001f0
                window id # of group leader: 0x5c0000a
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x24, 0x1a, 0x7c74d118, 0x23
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified location: 3, 31
                program specified minimum size: 160 by 35
                program specified maximum size: 160 by 35
                window gravity: Static
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x4e00013
XdndAware(ATOM) = ATOM
_NET_WM_PID(CARDINAL) = 10931
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "falcon"
WM_CLASS(STRING) = "explorer.exe", "Wine"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, WM_TAKE_FOCUS
davidedmundson commented 8 years ago

I think the property I want will inherit from the parent window (teamviewer)

if you can get the wine tray icon that's better, but it's harder to do.

Crazy-Hopper commented 8 years ago

Here is the xprop output for the main TeamViewer window:

WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 3, 3, 31, 4
_NET_FRAME_EXTENTS(CARDINAL) = 3, 3, 31, 4
_NET_WM_DESKTOP(CARDINAL) = 3
_NET_WM_ICON_GEOMETRY(CARDINAL) = 944, 1024, 242, 50
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_ACTIVITIES(STRING) = "f42b61a0-eae1-4cee-a8ff-71c01ba2395f"
_NET_WM_STATE(ATOM) = 
_NET_WM_ICON(CARDINAL) =        Icon (32 x 32):
               ░                        
           ░░░░▒▒▒▒▒▒▒░░░               
           ▒▒▒▒░░░░░▒▒▒▒▒▒▒▓▒▒▒░░       
           ░▒▒░░░░░░░░░░░░░▒▒▒▒▒▒▒░     
           ░░░░░░░░░░░░░░░░░▒▒▒▒▒░░░    
           ░░░░░░▒░░ ░░░░░░░░▒▒▒▒▒▒▒    
           ░░░░▒░        ░░░░░▒▒▒▒▒▒    
           ░░░░▒          ░░░░░▒▒▒▒▒
           ░░░▒            ░░░░░▒▒▒▒
           ░░░░             ░░░░▒▒▒▒
           ░░▒               ░░░░▒▒▒
           ░░▒                ░░░▒▒▒
           ░░▒     ▒          ░░░▒▓▓
           ░░▒  ░▒▒▒    ░▒     ░░▒▓▓
           ░░▒ ▒▒▒▒▒▒░░░░▒▒    ░▒▒▓▓
           ░░▒  ▒▒░▒▒▒▒▒▒▒▒▒░  ▒▒▒▓▓
           ░░▒   ▒▒▒▒▒▒▒▒▒▒▒▒▒ ░▒▒▓▓
           ░░░░   ▒▒  ░░░▒▒▒▒▒░░▒▒▓▓
           ░░░▒    ░░   ░░▒░░  ░▒▒▓▓
            ░░▒░        ░░     ░▒▒▓▓
            ▒▒▒▒               ▒▒▒▓▓
            ▒▒▒▒░             ░▒▒▒▓▓
            ▒▒▒▒▒░            ░▒▒▒▓▓
            ▒▒▒▒▒▒░          ░▒▒▒▒▓▓
            ▒▒▒▒▒▒▒░        ░▒▒▒▒▒▓▓
            ░▒▒▒▒▒▒▒▒░     ░▒▒▒▒▒▒▓▓
             ▒▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▓▓░░
                ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒░
                    ░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓░
                       ░░▒▒▒▒▒▒▒▒▒▓░
                           ░░▒▒▒▒▒░
                               ░░

_NET_WM_NAME(UTF8_STRING) = "TeamViewer"
WM_ICON_NAME(STRING) = "TeamViewer"
WM_NAME(STRING) = "TeamViewer"
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                Initial state is Normal State.
                bitmap id # to use for icon: 0x3e0037d
                bitmap id # of mask for icon: 0x3e0037f
                window id # of group leader: 0x5e00002
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x2c, 0x3a, 0x7d6a9960, 0x1c2
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified location: 3, 31
                program specified minimum size: 600 by 450
                program specified maximum size: 600 by 450
                window gravity: Static
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x3e0003a
XdndAware(ATOM) = ATOM
_NET_WM_PID(CARDINAL) = 10694
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "falcon"
WM_CLASS(STRING) = "TeamViewer.exe", "Wine"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, WM_TAKE_FOCUS
tehnick commented 8 years ago

Fixed in 406f257. Thanks for a bug report.

Crazy-Hopper commented 8 years ago

Thank you, closing then.

angrylinuxuser commented 8 years ago

sorry im running todays git and still no icon from battle.net

here is xprop if its gona help

_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_ICON_GEOMETRY(CARDINAL) = 65, 996, 209, 24
_KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_STATE(ATOM) = 
_NET_WM_ICON(CARDINAL) =        Icon (32 x 32):
         ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 
        ▒▓▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░▒▒
        ▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▓
        ▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▓▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▓▓▓▓▒▒▒▒▒░▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▓▓▓▓▓▒▒▒▒░▒▓▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓
        ▓▒▓▓▓▓▓▒▒▓▒░▒▓▒▒▒▒▒▒▒▒▓▓▒▒▒▒▓▓▓▓
        ▓▒▓▓▓▓▓▒▒▓▒░▒▒▒▓▒▒▒▒▒░▒▒▒▓▓▓▓▓▓▓
        ▓▓▓▓▓▒▒▒▒▒▒░▒▓▓▓▓▓▓▓▓▓▒░▒▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▒▒▓▒░▒▒▒▒▒▒▒▓▓▓▓▒▒░▒▓▓▓▓▓
        ▓▓▓▓▓▓▓▒▒▓▓▒▒▓▓▒▒▒░▒▒▒▒▓▓▒▒▓▓▓▓▓
        ▓▓▓▓▓▓▓▒▒▓▓▒▒▓▓▓▓▓▓▒░░▒▓▓▒▒▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▒▓▓▒░▓▓▓▓▓▓▓▓▒░░▒▒▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▒▒▓▓░▓▓▓▓▓▓▒▒▓▒▒░░▒▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▒▒▓▓▒▒▓▓▓▓▒▒▓▓▓▓▒░░▒▓▓▓▓
        ▓▓▓▓▓▓▓▓▒▒▓▓▒▒▓▓▓▒░▓▓▒▓▓▓▒▒░▓▓▓▓
        ▓▓▓▓▓▓▓▒▒▓▒▓▓▒▓▓▒░▓▓▓▒▓▓▓▒▒░▒▓▓▓
        ▓▓▓▓▓▓▓▒▓▓▓▒▓▒▓▒░▓▓▓▒▒▓▓▒▒▒▒▓▓▓▓
        ▓▓▓▓▓▓▓▒▓▓▓▓▒▒░░▓▓▓▒▒▒▒▒▒▒▓▓▓▓▓▓
        ▓▓▓▓▓▓▒▒▒▓▓▒▒░░▒▓▓▒░▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▒▒▒▒▒░░▒▓▒▓▒░▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▒░▒░░▒▒▓▓▒▒░▒▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▒▒▒▓▓▒▒▒░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒
         ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ 

        Icon (16 x 16):
         ▒▓▓▓░▒▒▓▓▓▓▓▓▓ 
        ▓▓▒▒▒░▒▒▒▒▒▒▒▒▓▓
        ▓▓▒▒▒░▓▓▒▒▓▓▓▓▓▓
        ▓▓░▒░░▒▒▒▒░▒▓▒▓▓
        ▓▒░▒▒░▒▓▓▓▒▒░░▓▓
        ▓▒░▒▒░▒░░▒▓▓▒▒░▓
        ▓▓░▓▒░▓▓▒▒░▒▒▓▒▒
        ▓▓▒▒▓░▓▓▓▓▒▒░░▒▓
        ▓▓▓▒▓░▒▓▓▒▒▓▒░░▒
        ▓▓▒▒▒▒▒▓▒░▓▒▓▓▒░
        ▓▓▒▓▒▓▒▒░▓▒▒▓▒▒▒
        ▓▒▒▓▓▒░▒▓▓▒▒▒▒▒▓
        ▓▒▒▒░░▒▒▓░▓▓▓▓▓▓
        ▓▒░░░▒▓▒░▓▓▓▓▓▓▓
        ▓▓▓▓▓▒░░▒▓▓▓▓▓▓▓
        ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓░

_NET_WM_NAME(UTF8_STRING) = "Battle.net"
WM_ICON_NAME(STRING) = "Battle.net"
WM_NAME(STRING) = "Battle.net"
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False
                Initial state is Normal State.
                bitmap id # to use for icon: 0x3c00047
                bitmap id # of mask for icon: 0x3c00049
                window id # of group leader: 0x3200003
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x0, 0x0, 0x0
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified location: 41, 109
                window gravity: Static
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x3c00011
XdndAware(ATOM) = BITMAP
_NET_WM_PID(CARDINAL) = 9816
WM_LOCALE_NAME(STRING) = "pl_PL.utf8"
WM_CLIENT_MACHINE(STRING) = "Archlinux"
WM_CLASS(STRING) = "Battle.net.exe", "Battle.net.exe"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, WM_TAKE_FOCUS
tehnick commented 8 years ago

@angrylinuxuser Do you mean there is no icon at all or there is a transparent icon?

angrylinuxuser commented 8 years ago

well i think it could be transparent. Is it a other bug? i can click on empty spot and it works like an icon was there.

angrylinuxuser commented 8 years ago

Stupid question i guess:

Should window id change if i kill and run xembedsniproxy over and over while running battle.net.exe? Log says something like that:

kde.xembedsniproxy: Manager selection claimed
kde.xembedsniproxy: trying to dock window  48234696
kde.xembedsniproxy: adding damage watch for  48234696

then kill and restart xembedsniproxy

kde.xembedsniproxy: Manager selection claimed
kde.xembedsniproxy: trying to dock window  48234709
kde.xembedsniproxy: adding damage watch for  48234709

and again

kde.xembedsniproxy: Manager selection claimed
kde.xembedsniproxy: trying to dock window  48234722
kde.xembedsniproxy: adding damage watch for  48234722
tehnick commented 8 years ago

well i think it could be transparent. Is it a other bug?

Yes, this is completely another bug.