xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 6 years ago

#591 closed defect (fixed)

tray icons stacked in upper-left corner after "xpra upgrade"

Reported by: onlyjob Owned by: onlyjob
Priority: major Milestone: 0.14
Component: core Version: 0.13.x
Keywords: Cc:

Description

When I upgraded server-side Xpra from 0.12.7 to 0.13.3 and re-attached to session using client 0.13.3 -- tray icons of running applications appeared stacked on top of each other in upper-left corner.

Attachments (1)

tray-icons-squashed.png (1.5 KB) - added by onlyjob 6 years ago.
screenshot, tray icons squashed

Download all attachments as: .zip

Change History (9)

comment:1 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to onlyjob

Do you have a screenshot?
What's your desktop environment?
What applications are using the tray?
Is this a regression? (there were no noticeable changes in the tray code since 0.12.x)

Changed 6 years ago by onlyjob

Attachment: tray-icons-squashed.png added

screenshot, tray icons squashed

comment:2 in reply to:  1 Changed 6 years ago by onlyjob

Replying to totaam:

Do you have a screenshot?


See attached.

What's your desktop environment?


KDE

What applications are using the tray?


All of them. On screenshot there are icons from KDE wallet manager, ktorrent and QuiteRSS (bottom to top).

Is this a regression? (there were no noticeable changes in the tray code since 0.12.x)


Although I didn't notice this problem on 0.12 I'm not sure if it is a regression. This is somehow related to upgrade: if I terminate application and start it again its tray icon appears in tray properly.

comment:3 Changed 6 years ago by onlyjob

Summary: tray icons in upper-left cornertray icons stacked in upper-left corner after "xpra upgrade"

comment:4 Changed 6 years ago by Antoine Martin

Confirmed: what happens is that the tray windows look like regular OR windows, and the tray icon windows do not request docking into the new tray..

That's because the systemtray spec does not define any mechanism for taking over existing tray icons. I wonder how/if this works with regular DEs, and if so, how.

If not, we will have to hack something to let the new tray know which OR windows it should dock automatically.

comment:5 Changed 6 years ago by Antoine Martin

Owner: changed from onlyjob to Antoine Martin
Status: newassigned

Looking at the gtk.StatusIcon implementation in GTK2, I see that we can trigger the re-docking by:

  • ensuring gtk_tray_icon_clear_manager_window is called first
  • then gtk_tray_icon_update_manager_window

The first one should be called by gtk_tray_icon_manager_window_destroyed when it receives a DestroyNotify on the manager_window (which is the XGetSelectionOwner(_NET_SYSTEM_TRAY_Sn)). That should already happen?

The second one should be called when it receives a ClientMessage of type MANAGER with data _NET_SYSTEM_TRAY_Sn, which is what we do after we have claimed the selection. So this should already work?

comment:6 Changed 6 years ago by Antoine Martin

Owner: changed from Antoine Martin to onlyjob
Status: assignednew

Found the solution by looking at the code in trayion (FreeDesktop? trayicon area for Ion3): fixed in r6755.

Does that work for you? (will backport)

comment:7 Changed 6 years ago by onlyjob

That appears to be fixed in 0.13.5, thank you.

comment:8 Changed 6 years ago by Antoine Martin

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