There are a number of places where the old code is holding us back:
xposix/gui.py- see r435)* ping
etc.. And some workarounds for bugs that are no longer present:
WorldWindow- fix applied in 2007
bindings.pyx) - fix applied in 2008
And maybe more
It means that there are more than one codepath for many important functions, this makes it hard to read and debug, requires more testing (with older versions), etc
At some point we just have to drop compatibility with older versions.
I think we should set
v0.0.7.32 as the starting point, allow it to connect to
v0.1.x (one major version up) and then drop all compatibility code in
v0.2.x to remove all the version cruft.
Done in r351: all releases from now on will accept both
In a few months time we can then bump the version to
v0.1.x without causing incompatibility with
We may even be able to start dropping feature tests by simply relying on versions >=
v0.0.7.2x, when most of the keyboard stuff got added.
r514 only supports
v0.0.7.35 and later, which allows us to remove:
_focus_modifiers_featureare all assumed supported. Some of these flags may still be sent for backwards compatibility with the v0.0.7.x branch, but these will be dropped soon too.
xkbmap_mod_add: these were the old plain-text/unparsed data now replaced by proper data structures.
_keycode_from_keynameguessing methods were no longer needed as we now always use raw keycodes from the client.
exec_xmodmapwhich used the '
xmodmap' X11 binary is no more, we now use native code for most things (except for the initial layout which still uses '
setxkbmap' and '
set_xmodmap_from_textwhich duplicated the xmodmap C code.
cursors forwarding can be toggled on the server so we don't bother sending it at all rather than ignoring it client-side, saves bandwidth when not used.
encodingswill probably stay: no harm in supporting clients with fewer dependencies (no '
PIL' aka Python Imaging Library)
r519 makes the packet-size feature mandatory and adds support for it to the Java / Android code. Maybe 0.1 / 0.2 would be a good time to change this to a better format? (binary with reserved space?)
r548 removes the old gtk workarounds
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/57