Hi Martin, Thanks for finding this issue. Good work on making some patches, but I don't think they are quite right. We need to set the internal button state of the device when the touch begin comes in, otherwise we will not get the right result when we call {X,XI}QueryPointer().
A simpler solution would be to modify DeliverTouchEmulatedEvent(). There is the following line: ptrev->device_event.corestate = event_get_corestate(dev, kbd); We need to modify it so that it also passes in a boolean to event_get_corestate() to determine whether to mix the touch emulated button state in with the normal button state. Then, we tell the function to mix in the touch emulated state only on touch update and end events. We can reason that this is correct because only one touch may be emulated at a time per device, and because only one window may receive an emulated button press for the touch begin at a time. I will attempt to make a test and a patch for this tomorrow. Thanks! ** Changed in: xorg-server (Ubuntu) Status: Confirmed => In Progress ** Changed in: xorg-server (Ubuntu) Importance: Undecided => Medium ** Changed in: xorg-server (Ubuntu) Assignee: (unassigned) => Chase Douglas (chasedouglas) ** No longer affects: xserver-xorg-input-evdev (Ubuntu) -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1015183 Title: Inconsistent mouse events for Acer T231H multitouch monitor To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1015183/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs