As it's a bit of a mess...
In particular:
is_OR
vs "override-redirect" property, is_shadow
, etc..)
_handle_XXXX
methods to a util class?
NET_WM_ALLOWED_ACTIONS
?
add_event_receiver
/ remove_event_receiver
with a WeakKeyDictionary
_internal_set_property
can check if the value has actually changed? (no need to send a notify()
if it hasn't)
List of API calls to deal with:
get_default_window_icon
_guess_window_type
do_get_property_can_focus
just update the "can-focus" property instead
x11_get_server_time
- rewrite in Cython
read_initial_properties
and X11 properties, it's a mess
call_setup()
is inconsistent, it's called for OR and tray, but we call it for "normal" windows
WM_PROTOCOLS
-> XGetWMProtocols
WM_CLIENT_MACHINE
-> XGetWMClientMachine
attention-requested
: shouldn't we clear this when "urgency" is not in the wm_hints?
set_active
- maybe this should be a method on WM instead?
better patch
much cleaner patch
Huge changeset in r9822 - see commit message. If needed, it should be possible to revert those changes easily enough for testing.. so far.
Still TODO:
WM_STATE
and withdrawn windows - we only handle "iconic" (should we forward "withdrawn" to client? and emulate it as a destroy + new for older clients?)
Moving the geometry bits to #990 (the rest is in pretty good shape already)
Note: on centos 7.x, we get tons of warnings like these:
/usr/lib64/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property xpra+x11+gtk2+models+or_window+OverrideRedirectWindowModel::size-hints after class was initialised type_register(cls, namespace.get('__gtype_name__')) /usr/lib64/python2.7/site-packages/gobject/__init__.py:115: Warning: Attempt to add property xpra+x11+gtk2+models+or_window+OverrideRedirectWindowModel::frame after class was initialised type_register(cls, namespace.get('__gtype_name__'))
Which is caused by this bug: https://bugzilla.gnome.org/show_bug.cgi?id=698614 (hopefully will be backported to centos 7.x soon).
AFAICT, it is not possible to workaround this warning with pygobject (see the two attempts at subclassing attached below).
example triggering the centos 7 warning
another example triggering the centos 7 warning
Lots more work on this done as part of #990 - this will do for this release.
Will follow up in #1034
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/907