[PATCH] Count the number of logically down buttons in buttonsDown
thjaeger at gmail.com
Mon Jan 5 08:55:40 PST 2009
I've been wondering for a while if this change was necessary; it turns
out it is, a test case is mentioned in the commit message.
Peter Hutterer wrote:
>> Thomas Jaeger wrote:
>>> I can't see any reason why we would treat buttons > 5 differently. This
>>> patch simplifies client code by eliminating the need to call XGrabDevice
>>> after a button has been pressed and prevents race conditions that could
>>> result from that.
> Following up on that:
> Both the core protocol and the XI protocol spec state that a passive grab is
> to be released when all buttons are logically up, regardless of modifiers.
> This is where the magic number 5 comes in. Core allows for 5 buttons, XI
> allows for more.
> This puts us in a difficult position. Core requires us to release the grab if,
> say, only button 6 is down. XI requires us to maintain the grab.
> I think we need a more complex solution than the one you proposed: test
> whether the passive grab is a core or an XI grab and release depending on this
> Something like
> if ((grab->coreGrab && !button->state) && ... ||
> (!grab->coreGrab && AllButtonsAreUp(b))
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2523 bytes
Desc: not available
More information about the xorg