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)
_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
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:
_NET_WM_MOVERESIZE
for win32 and osx (#772)
Code issues:
xpra.platform.gui
...
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.
For _NET_FRAME_EXTENTS
and _NET_REQUEST_FRAME_EXTENTS
see #919 and #885.
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.
Milestone renamed
Remains (all low priority):
_NET_WM_ALLOWED_ACTIONS
_NET_RESTACK_WINDOW
_NET_WM_PING
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...
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/794