Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
https://xpra.org/
GNU General Public License v2.0
1.9k stars 163 forks source link

EWMH attributes: missing pieces, incomplete platform support #794

Open totaam opened 9 years ago

totaam commented 9 years ago

Issue migrated from trac ticket # 794

component: core | priority: major

2015-01-27 05:30:05: totaam created the issue


Split from #775, overlaps with #723, #772, #773 and #774.

Parts of the spec still missing or incomplete:

  • _NET_WM_ALLOWED_ACTIONS should take into account what the client is capable of (made more difficult by #41) - we should also detect this better rather than just relying on os.name==posix (which evaluates to True on OSX despite the fact that most of these things are meaningless on OSX..)
  • _NET_WM_SYNC_REQUEST (#723)
  • stacking issues: _NET_RESTACK_WINDOW and above / below attributes in configure requests
  • _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS: we should be able to do something: we already have the values for win23, on X11 we can create temporary unmapped windows on each desktop and send the frame request (and do this whenever the geometry changes), and send the metadata back to the server when we have it... which will require a bit of logic
  • _NET_WM_PING: not urgent but nice to have
  • window icons specified using WM_HINTS (icon_pixmap + icon_mask or icon_window..)
  • _NET_WM_USER_TIME and _NET_WM_USER_TIME_WINDOW: nice to have

Platform specific issues:

  • GTK does not expose the shaded state for windows.. so we don't synchronize it back from the client
  • _NET_WM_MOVERESIZE for win32 and osx (#772)
  • lots of things missing on OSX
  • virtual desktops for win32 and osx (#774 / #776)

Code issues:

  • probably need to refactor xpra.platform.gui...
  • GTK3 (#640)
totaam commented 9 years ago

2015-06-27 12:48:56: antoine commented


r9733 adds support for synchronizing _NET_WM_STATE_FOCUSED from X11 clients back to the server and cleans up the code a bit.

For win32 and osx, we could emulate this by synthesizing those property changes: either client side whenever the focus changes, or telling the server to take care of it.

totaam commented 9 years ago

2015-07-17 04:33:16: totaam commented


For _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS see #919 and #885.

totaam commented 9 years ago

2015-07-17 09:34:35: totaam commented


  • WM_CLASS done in r9661 (some cleanup prep in r9660): we can now synchronize even after the window has been realized (we bypass GTK2 to avoid its obnoxious warning)
  • WM_COMMAND done in r9963

Test applications are included in each commit.

totaam commented 7 years ago

2016-09-23 11:39:26: antoine commented


  • many of the missing pieces for OSX client support have been added, see #1086#comment:4

Remains (all low priority):

  • _NET_WM_ALLOWED_ACTIONS
  • _NET_RESTACK_WINDOW
  • _NET_WM_PING
  • window icons specified using WM_HINTS (icon_pixmap + icon_mask or icon_window..) - not used anywhere?
  • _NET_WM_USER_TIME and _NET_WM_USER_TIME_WINDOW - GTK already does this...
  • virtual desktops for win32 and osx (#774 / #776)