Skip to content
  • Carlos Garnacho's avatar
    frames: Keep information about the ongoing grab operation, and retry if needed. · d05b750b
    Carlos Garnacho authored and Jasper St. Pierre's avatar Jasper St. Pierre committed
    When a passive touch grab is rejected over the frame, management is punted to
    the frame itself, and pointer events emulated, but the attempt to transfer the
    grab from the GDK connection to the Clutter one fails with AlreadyGrabbed, and
    will fail until the Clutter connection receives the XI_TouchEnd resulting from
    XIRejectTouch, gotten after the XI_ButtonPress on the GDK connection.
    
    In order to bypass this shortcoming, store the current grab operation on the
    frame as long as the button is pressed, so it is retried once on the next
    motion event happening during frame dragging, that will have a recent enough
    timestamp to succeed. If no grabbing succeeded, the current grab operation
    data will be reset on GDK_BUTTON_RELEASE.
    d05b750b