xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Changes between Version 2 and Version 3 of Ticket #1941


Ignore:
Timestamp:
08/28/18 16:18:30 (3 years ago)
Author:
Antoine Martin
Comment:

The patch above "fixes" the issue, but we can't apply it.

The problem comes from the fact that since the xpra server and client(s) can be detached and re-attached, each one has its own window model and each model can be different. For example, windows may not be shown on screen exactly where the server thinks they are. That's especially the case when you enable session sharing and connect with multiple clients.

So we keep track of where the clients map each window, and when we process pointer events from a client we adjust the position of the event so that it lands in exactly the same place on the server side window. When running your example code, we create a race condition: the server moves the window and sends a message to the client to do likewise but before the client has a chance to do so it has sent a pointer motion event which then gets adjusted for the new window position the client knew nothing about at that point.. So we shouldn't adjust it, and that's why the patch "works".

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1941 – Description

    v2 v3  
    44Through debugging I've 2 scenarios (!WindowDragWithDelay,!WindowDragNoMove) that can return the mouse location correctly and 1 (!WindowDragNoDelay) that doesn't.
    55
    6 As a control (CentOS without Xpra) WindowDragNoDelay will return the correct mouse location.
     6As a control (CentOS without Xpra) !WindowDragNoDelay will return the correct mouse location.
    77
    88Reproduce by installing java and running the windowdrag.jar in attached zip file: