xpra icon
Bug tracker and wiki

Opened 17 months ago

Closed 4 days ago

#1144 closed defect (fixed)

Firefox window loses icon

Reported by: a1n10 Owned by: a1n10
Priority: minor Milestone: 2.1
Component: server Version: trunk
Keywords: Cc: onlyjob@…

Description

Firefox window loses _NET_WM_ICON(CARDINAL) when forwarded through Xpra. Result is incorrect icon displayed in the Alt-tab window switcher. The window property is initially correctly set but when opening a new browser tab it is deleted.

Attachments (1)

Screenshot_2016-03-15_19-31-06.png (84.3 KB) - added by a1n10 16 months ago.

Download all attachments as: .zip

Change History (14)

comment:1 Changed 17 months ago by Antoine Martin

Owner: changed from Antoine Martin to a1n10

@a1n10: please include version, OS, etc..
Can you try running with with -d icon?

comment:2 Changed 17 months ago by a1n10

I think the problem should be apparent in any other app that changes the window icon.

OS: Arch Linux
Xpra: 0.16.1

xpra -d:

2016-03-13 05:22:50,458 Attached to :11 (press Control-C to detach)^[[0m
^[[36m2016-03-13 05:23:49,706 _NET_WM_ICON_NAME=Mozilla Firefox^[[0m
^[[36m2016-03-13 05:23:49,706 _NET_WM_ICON changed on 0x80001d, re-reading^[[0m
^[[36m2016-03-13 05:23:49,734 icon is now <cairo.ImageSurface object at 0x35890036450>^[[0m
^[[36m2016-03-13 05:23:49,750 client icon settings: size=(64, 64), max_size=(128, 128), theme_default_icons=['folder-videos-symbolic', 'stock_text_bold', 'stock_redo', 'not$
^[[36m2016-03-13 05:23:49,752 send_window_icon(WindowModel(0x80001d)) icon=<cairo.ImageSurface object at 0x35890036450>^[[0m
^[[36m2016-03-13 05:23:49,752 send_window_icon(WindowModel(0x80001d)) wid=1, icon=<cairo.ImageSurface object at 0x35890036450>, compression scheduled in 69ms^[[0m
^[[36m2016-03-13 05:23:49,825 compress_and_send_window_icon: 128x128, sending as png=False^[[0m
^[[36m2016-03-13 05:23:49,826 queuing window icon update: ('window-icon', 1, 128, 128, 'premult_argb32', LevelCompressed(premult_argb32: 34504 bytes as lz4/21))^[[0m
^[[36m2016-03-13 05:23:49,904 _NET_WM_ICON_NAME=Mozilla Firefox Start Page - Mozilla Firefox^[[0m
^[[36m2016-03-13 05:23:49,904 _NET_WM_ICON_NAME=Mozilla Firefox Start Page - Mozilla Firefox^[[0m
^[[36m2016-03-13 05:23:53,673 _NET_WM_ICON_NAME=#1144 (Firefox window loses icon) – Xpra - Mozilla Firefox^[[0m
^[[36m2016-03-13 05:23:53,674 _NET_WM_ICON_NAME=#1144 (Firefox window loses icon) – Xpra - Mozilla Firefox^[[0m
^[[36m2016-03-13 05:24:28,093 client icon settings: size=(64, 64), max_size=(128, 128), theme_default_icons=['folder-videos-symbolic', 'stock_text_bold', 'stock_redo', 'not$
^[[36m2016-03-13 05:24:35,081 client icon settings: size=(64, 64), max_size=(128, 128), theme_default_icons=['folder-videos-symbolic', 'stock_text_bold', 'stock_redo', 'not$
2016-03-13 05:24:42,286 client has requested disconnection: exit on signal SIGINT^[[0m
2016-03-13 05:24:42,287 Disconnecting client '/home/usr/.xpra/pc-11':^[[0m
2016-03-13 05:24:42,287  client request^[[0m
2016-03-13 05:24:42,308 xpra client disconnected.^[[0m
^[[36m2016-03-13 05:24:42,435 _NET_WM_ICON changed on 0x80001d, re-reading^[[0m
^[[36m2016-03-13 05:24:42,481 icon is now <cairo.ImageSurface object at 0x358900361b0>^[[0m

comment:3 Changed 16 months ago by Antoine Martin

Please specify your DE and (py)gtk versions as well as the window-switcher application you use. A screenshot would not hurt.
Does it show the old icon, a broken one? what does xprop show for this window? (both on the client, and directly on the server: you can find the window's xid with xpra info | grep xid)

I cannot reproduce here.
My client log correctly shows:

_process_window_icon(8, 128, 128, premult_argb32, 65536 bytes) window=GLClientWindow(8 : gtk2.GLWindowBacking(8, (128, 128), None))
GLClientWindow(8 : gtk2.GLWindowBacking(8, (128, 128), None)).update_icon(128, 128, premult_argb32, 65536 bytes)
GLClientWindow(8 : gtk2.GLWindowBacking(8, (128, 128), None)).set_icon(<gtk.gdk.Pixbuf object at 0x7fa314e85960 (GdkPixbuf at 0x5594547b0aa0)>)

We even have some test applications for this (press a key to change the icon):

Changed 16 months ago by a1n10

comment:4 Changed 16 months ago by a1n10

DE: Xfce
WM: Xfwm

I don't have any holded back packages so I use whatever version of the package is in the Arch repos (usually last version):
https://www.archlinux.org/packages/

Both the Xpra client and server run on the local machine under the current user. I connect to the Xpra server by starting applications under other users and specify the Xpra as target display like:

#!/bin/bash
exec gksudo -u firefox -l env DISPLAY=:11 firefox
Last edited 16 months ago by Antoine Martin (previous) (diff)

comment:5 Changed 16 months ago by Antoine Martin

I cannot reproduce.
r12369 adds the ability to save the icons to file both client and server side.
Run xpra with:

XPRA_SAVE_WINDOW_ICONS=1 xpra ...

And inspect those files. They are correct at both ends for me.

I suspect that for some reason, your DE / gtk is ignoring the icon we set and using the wm-class or something else to set the icon.
Please include xprop for the client window.
Please also try a different DE to confirm that this DE related.

comment:6 Changed 15 months ago by Antoine Martin

See also #1176, which could be related (also cannot reproduce).

comment:7 Changed 15 months ago by onlyjob

Cc: onlyjob@… added

comment:8 Changed 10 months ago by Antoine Martin

Resolution: needinfo
Status: newclosed

Not heard back.

comment:9 Changed 2 months ago by Antoine Martin

New duplicate: #1514.

r15826 may fix this issue and should be harmless to backport.
Can someone who can reproduce this issue confirm either way?

comment:10 Changed 2 months ago by alin104n

Yes, I can confirm the problem is solved in the last version.

comment:11 Changed 2 months ago by Antoine Martin

Thanks!

Applied to supported branches in r15828.

comment:12 Changed 4 days ago by Antoine Martin

Milestone: future2.1
Resolution: needinfo
Status: closedreopened

comment:13 Changed 4 days ago by Antoine Martin

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.