Created attachment 45497 [details]
I tested this using ubuntu's xorg-server packages; apologies if the bug is not present in the upstream code.
XI2 Button grabs don't seem to work right anymore: Upon releasing the button, no release event is sent and the grab remains in effect; pressing and releasing the button again, however, does results in both the press and release being reported and the grab being released. (Trivial) test case is attached.
Confirmed, and it seems this still does not work correctly in current git (7aad7dbf409eaa16a2c80d76ba2a42dc84501919).
Had a quick test against 7aad7dbf409eaa16a2c80d76ba2a42dc84501919 and I see press/release event as I click/release the mouse. What else is necessary?
I am able to reproduce the issue on Ubuntu Natty. Reverting 81fbb96c54f78a7cd96433294ee003c7ef6a772a (9d23459415b84606ee4f38bb2d19054c432c8552 on master) fixes the issue.
The change calls the new ReleaseButtonsAndKeys() function in AttachDevice(). This makes sense when you are wanting to float a device. However, activating a passive grab on a slave device also floats the device. In this case, ReleaseButtonsAndKeys() is interfering with the passive grab.
I plan on reverting 81fbb96c54f78a7cd96433294ee003c7ef6a772a in xserver-1.10-branch for 1.10.1 unless a low-risk fix can be found for this today.
Created attachment 45648 [details] [review]
how about this patch? Reverts to old behaviour but still releases the buttons on floating/reattaching devices.
This (and associated regressions) are all fixed (albeit hackishly) now in both master and server-1.10-branch, right?
in server-1.10-branch and will be in 1.10.3 RC2