Also, without too much verbosity, why is it we need to implement window movement completely synchronously? My understanding is that waiting and locking should never be required when the user moves a window.
A window move should simply involve two events:
1. Motion event -> move plugin -> send request to X server (XConfigureWindow I think).
and some time later (should not care when):
2. XConfigureNotify (or whatever) -> core plugin -> compiz window position updated.
If this is lazy positioning then maybe I do support it. But historically we seem to have a lot more code than should be necessary to implement movement so I'm not sure.
Also, without too much verbosity, why is it we need to implement window movement completely synchronously? My understanding is that waiting and locking should never be required when the user moves a window.
A window move should simply involve two events:
1. Motion event -> move plugin -> send request to X server (XConfigureWindow I think).
and some time later (should not care when):
2. XConfigureNotify (or whatever) -> core plugin -> compiz window position updated.
If this is lazy positioning then maybe I do support it. But historically we seem to have a lot more code than should be necessary to implement movement so I'm not sure.