Xpra: Ticket #1144: Firefox window loses icon

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.

Sun, 13 Mar 2016 02:45:44 GMT - Antoine Martin: owner changed

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

Sun, 13 Mar 2016 03:25:00 GMT - 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

Mon, 14 Mar 2016 13:45:21 GMT - 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):

Tue, 15 Mar 2016 17:30:27 GMT - a1n10: attachment set

Tue, 15 Mar 2016 17:38:19 GMT - 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:

exec gksudo -u firefox -l env DISPLAY=:11 firefox

Sun, 10 Apr 2016 06:04:26 GMT - Antoine Martin:

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


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.

Mon, 18 Apr 2016 11:16:49 GMT - Antoine Martin:

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

Mon, 18 Apr 2016 12:24:47 GMT - onlyjob: cc set

Tue, 27 Sep 2016 09:20:16 GMT - Antoine Martin: status changed; resolution set

Not heard back.

Sat, 13 May 2017 06:27:37 GMT - 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?

Sat, 13 May 2017 14:16:36 GMT - alin104n:

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

Sat, 13 May 2017 16:46:36 GMT - Antoine Martin:


Applied to supported branches in r15828.

Mon, 17 Jul 2017 10:02:54 GMT - Antoine Martin: status, milestone changed; resolution deleted

Mon, 17 Jul 2017 10:03:02 GMT - Antoine Martin: status changed; resolution set

Sat, 23 Jan 2021 05:16:11 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1144