If the client is fast and no redraw is involved, dragging windows is
fine.
If the client does heavy redrawing (e.g. Navigator), dragging not
only becomes interrupted but also strange.
The last position assigned to the window is the mouse position when
the mouse-up event is processed! And not when the event was
generated.
This makes it quite impossible to fine position a window to the
release point of the mouse.
The code may be based on absolute mouse positions instead of
relative as reported by the events. This may have been changed some
time ago, because relative event positions are also not very
reliable since they depend on ongoing window movements.
So we need to correctly track both: mouse moved and window moved
responses from the server and make sure they don't swap order.
Reported by Nikolaus Schaller, Jan 26, 2012