Skip to content
  • Lionel Landwerlin's avatar
    input-device: don't reset a device's stage until all touch points are gone · d6a0f7eb
    Lionel Landwerlin authored and Emmanuele Bassi's avatar Emmanuele Bassi committed
    803b3baf introduced a new issue for
    multi touch events.
    
    In the case where 2 touch events for 2 different touch points are
    processed in the same iteration, a call to
    _clutter_stage_remove_device() when processing the first event will
    remove the stage setting of the InputDevice. That means Clutter will
    skip the second event, because it can't find a stage to which relate
    the event, so no related actor and so no emission.
    
    To fix this we move the _clutter_stage_(add/remove)_device() calls
    into the input device. This way the input device can find out exactly
    when to call these functions (i.e. when no touch point were previously
    active or when no touch point remain active).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682362
    d6a0f7eb