diff options
author | Fabien Freling <fabien.freling@nokia.com> | 2010-12-09 12:55:32 (GMT) |
---|---|---|
committer | Fabien Freling <fabien.freling@nokia.com> | 2011-01-17 10:46:47 (GMT) |
commit | 4ea4bcc2ddea6fc6899c14bb50b22f58b51bf7ca (patch) | |
tree | 97b734672e6fffa0e20d38e5c255fa86be71941e | |
parent | 4631d297781b8ad4eba0735b7023265d4872c1cb (diff) | |
download | Qt-4ea4bcc2ddea6fc6899c14bb50b22f58b51bf7ca.zip Qt-4ea4bcc2ddea6fc6899c14bb50b22f58b51bf7ca.tar.gz Qt-4ea4bcc2ddea6fc6899c14bb50b22f58b51bf7ca.tar.bz2 |
Fix double click event on Mac OS X.
Fix an issue where the double click would be
triggered even with different mouse buttons.
Task-number: QTBUG-8222
Reviewed-by: Richard Moe Gustavsen
-rw-r--r-- | src/gui/kernel/qt_cocoa_helpers_mac.mm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm index 462b30b..3820bfc 100644 --- a/src/gui/kernel/qt_cocoa_helpers_mac.mm +++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm @@ -994,6 +994,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev Qt::KeyboardModifiers keyMods = qt_cocoaModifiers2QtModifiers([theEvent modifierFlags]); NSInteger clickCount = [theEvent clickCount]; Qt::MouseButtons buttons = 0; + static Qt::MouseButton previousButton = Qt::NoButton; { UInt32 mac_buttons; if (GetEventParameter(carbonEvent, kEventParamMouseChord, typeUInt32, 0, @@ -1012,7 +1013,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev #ifndef QT_NAMESPACE Q_ASSERT(clickCount > 0); #endif - if (clickCount % 2 == 0 && buttons == button) + if (clickCount % 2 == 0 && (previousButton == Qt::NoButton || previousButton == button)) eventType = QEvent::MouseButtonDblClick; if (button == Qt::LeftButton && (keyMods & Qt::MetaModifier)) { button = Qt::RightButton; @@ -1046,6 +1047,7 @@ bool qt_mac_handleMouseEvent(void * /* NSView * */view, void * /* NSEvent * */ev QContextMenuEvent qcme(QContextMenuEvent::Mouse, qlocalPoint, qglobalPoint, keyMods); qt_sendSpontaneousEvent(widgetToGetMouse, &qcme); } + previousButton = button; return true; #endif } |