Hi all, Currently three major platform plugins (xcb, windows and cocoa) by default behave absolutely different when they receive synthesized mouse events from the system:
1) xcb plugin doesn't receive them at all 2) windows plugin marks them as Qt::MouseEventSynthesizedBySystem 3) cocoa plugin doesn't distinguish them from real mouse events (fix me if I`m wrong). It's really hard to create reliable cross-platform code on this base. My proposal is to ignore synthesized mouse events for the left mouse button on all platforms because Qt has more information to do it better. Events for other mouse buttons should be marked as Qt::MouseEventSynthesizedBySystem. So 1) xcb plugin can be left as it is Theoretically evdev could synthesize right button click for the "tap and hold" gesture. Sadly they refused to do it: https://bugzilla.redhat.com/show_bug.cgi?id=833502 But if this feature will be implemented then we could rewrite xcb plugin to receive mouse events from XInput to detect synthesized events. 2) windows plugin should just check that the left mouse button is not pressed in a synthesized mouse event 3) cocoa plugin should detect synthesized mouse events as a first step I don't know whether it's possible, but it is mentioned here https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html that they have subtype NSTouchEventSubtype. What do you think? Regards, Alexander. _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development