Activity log for bug #1144560

Date Who What changed Old value New value Message
2013-03-04 15:05:40 Dominik Röttsches bug added bug
2013-03-04 15:05:40 Dominik Röttsches attachment added GTK test app needed for reproduction https://bugs.launchpad.net/bugs/1144560/+attachment/3556658/+files/gtkMtTest.zip
2013-03-04 15:06:46 Dominik Röttsches bug added subscriber Daniel d'Andrada
2013-03-04 15:07:05 Dominik Röttsches description Unity's gesture recognition seems to interfere with the expected event sequence that applications see when listening to button events from the X server. This happens when a "1) finger on screen, (no movement), finger lifted (in short succession) 2) finger on screen (no movement), finger lifted" sequence is played back using evemu-play. (or the same is perfomed on screen) Running a simple GTK application that receives button press and release events on its main window reports a double "ButtonPress" at the end of the event sequence. These spurious events seem to originate from somewhere in unity or its gesture detection layers below. Running the same application under an alternative window manager, or disabling the unityshell plugin in compiz leads to a normal event sequence, same for commenting out InitGesturesSupport() in unityshell code and rebuilding the package. This can be reproduced with the gtk test app that I am attaching, moving it to the top left corner of your screen so that the replayed touch events hit this window's surface, plus replaying the attached evemu sequence using something like: $ sudo evemu-play /dev/input/event4 < buggyTapShort.event where /dev/input/event4 is your touch screen device or a virtual input device set up using evemu-device. The event sequence was originally recorded from a (multi)touchscreen using the hid_multitouch kernel driver. The resulting output looks like this: $ ./gtkmt ButtonPress, Timestamp: 5178071 ButtonRelease, Timestamp: 5178111 ButtonPress, Timestamp: 5178499 ButtonRelease, Timestamp: 5178567 ButtonPress, Timestamp: 5178499 ButtonPress, Timestamp: 5178499 whereas - looking at the BuggyTapShort.event sequence, there should clearly only be two touch Press and Release events, that match each other. We see two extra ButtonPress events, interestingly with exactly the same timestamp as the second touch event. My current working hypothesis is that unity's gesture recognition decides to somehow replay those events. Unity's gesture recognition seems to interfere with the expected event sequence that applications see when listening to button events from the X server. This happens when a "1) finger on screen, (no movement), finger lifted (in short succession) 2) finger on screen (no movement), finger lifted" sequence is played back using evemu-play. (or the same is perfomed on screen) Running a simple GTK application that receives button press and release events on its main window reports a double "ButtonPress" at the end of the event sequence. These spurious events seem to originate from somewhere in unity or its gesture detection layers below. Running the same application under an alternative window manager, or disabling the unityshell plugin in compiz leads to a normal event sequence, same for commenting out InitGesturesSupport() in unityshell code and rebuilding the package. This can be reproduced with the gtk test app that I am attaching, moving it to the top left corner of your screen so that the replayed touch events hit this window's surface, plus replaying the attached evemu sequence using something like: $ sudo evemu-play /dev/input/event4 < buggyTapShort.event where /dev/input/event4 is your touch screen device or a virtual input device set up using evemu-device. The event sequence was originally recorded from a (multi)touchscreen using the hid_multitouch kernel driver. The resulting output looks like this: $ ./gtkmt ButtonPress, Timestamp: 5178071 ButtonRelease, Timestamp: 5178111 ButtonPress, Timestamp: 5178499 ButtonRelease, Timestamp: 5178567 ButtonPress, Timestamp: 5178499 ButtonPress, Timestamp: 5178499 whereas - looking at the BuggyTapShort.event sequence, there should clearly only be two touch Press and Release events, that match each other. We see two extra ButtonPress events, interestingly with exactly the same timestamp as the second touch event. My current working hypothesis is that unity's gesture recognition decides to somehow replay those events.
2013-03-04 15:07:32 Dominik Röttsches attachment added Event sequence for evemu-play https://bugs.launchpad.net/unity/+bug/1144560/+attachment/3556659/+files/buggyTapShort.event
2013-03-04 15:27:02 Dominik Röttsches description Unity's gesture recognition seems to interfere with the expected event sequence that applications see when listening to button events from the X server. This happens when a "1) finger on screen, (no movement), finger lifted (in short succession) 2) finger on screen (no movement), finger lifted" sequence is played back using evemu-play. (or the same is perfomed on screen) Running a simple GTK application that receives button press and release events on its main window reports a double "ButtonPress" at the end of the event sequence. These spurious events seem to originate from somewhere in unity or its gesture detection layers below. Running the same application under an alternative window manager, or disabling the unityshell plugin in compiz leads to a normal event sequence, same for commenting out InitGesturesSupport() in unityshell code and rebuilding the package. This can be reproduced with the gtk test app that I am attaching, moving it to the top left corner of your screen so that the replayed touch events hit this window's surface, plus replaying the attached evemu sequence using something like: $ sudo evemu-play /dev/input/event4 < buggyTapShort.event where /dev/input/event4 is your touch screen device or a virtual input device set up using evemu-device. The event sequence was originally recorded from a (multi)touchscreen using the hid_multitouch kernel driver. The resulting output looks like this: $ ./gtkmt ButtonPress, Timestamp: 5178071 ButtonRelease, Timestamp: 5178111 ButtonPress, Timestamp: 5178499 ButtonRelease, Timestamp: 5178567 ButtonPress, Timestamp: 5178499 ButtonPress, Timestamp: 5178499 whereas - looking at the BuggyTapShort.event sequence, there should clearly only be two touch Press and Release events, that match each other. We see two extra ButtonPress events, interestingly with exactly the same timestamp as the second touch event. My current working hypothesis is that unity's gesture recognition decides to somehow replay those events. Unity's gesture recognition seems to interfere with the expected event sequence that applications see when listening to button events from the X server. This happens when a "1) finger on screen, (no movement), finger lifted (in short succession) 2) finger on screen (no movement), finger lifted" sequence is played back using evemu-play. (or the same is perfomed on screen) Running a simple GTK application that receives button press and release events on its main window reports a double "ButtonPress" at the end of the event sequence. These spurious events seem to originate from somewhere in unity or its gesture detection layers below. Running the same application under an alternative window manager, or disabling the unityshell plugin in compiz leads to a normal event sequence, same for commenting out InitGesturesSupport() in unityshell code and rebuilding the package. This can be reproduced with the gtk test app that I am attaching, moving it to the top left corner of your screen so that the replayed touch events hit this window's surface, plus replaying the attached evemu sequence using something like: $ sudo evemu-play /dev/input/event4 < buggyTapShort.event where /dev/input/event4 is your touch screen device or a virtual input device set up using evemu-device. The event sequence was originally recorded from a (multi)touchscreen using the hid_multitouch kernel driver. The resulting output looks like this: $ ./gtkmt ButtonPress, Timestamp: 5178071 ButtonRelease, Timestamp: 5178111 ButtonPress, Timestamp: 5178499 ButtonRelease, Timestamp: 5178567 ButtonPress, Timestamp: 5178499 ButtonPress, Timestamp: 5178499 We see two extra ButtonPress events, interestingly with exactly the same timestamp as the second touch event, whereas - looking at the BuggyTapShort.event sequence - there should clearly only be two touch Press and Release events, that match each other. My current working hypothesis is that unity's gesture recognition decides to somehow replay those events.
2013-03-04 15:29:12 Daniel d'Andrada bug watch added https://bugs.freedesktop.org/show_bug.cgi?id=56578
2013-03-26 18:18:15 Daniel d'Andrada marked as duplicate 1068994