From 232fe3ab6a2eb0585c77c0aee4769493ba23c35a Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 28 Aug 2018 16:54:14 +0200 Subject: doc: add note about QAbstractEventDispatcher::wakeUp() for {Unix,Glib} Task-number: QTBUG-70229 Change-Id: I3efc20baf0cfeb79834f3f2b7aa5a4cb049542f6 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qabstracteventdispatcher.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 304a7bda08..655fe58f98 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -309,6 +309,15 @@ int QAbstractEventDispatcher::registerTimer(int interval, Qt::TimerType timerTyp Wakes up the event loop. + \omit + ### FIXME - QTBUG-70229 + On Unix and Glib event dispatchers, if the dispatcher is already awake when + this function is called, it is ensured that the current iteration won't block + waiting for more events, but will instead do another event loop iteration. + + ### TODO - does other event dispatchers behave the same? + \endomit + \sa awake() */ -- cgit v1.2.3 From f30bf5fbd58c3fd67a98a1c759b63f24fbab8a41 Mon Sep 17 00:00:00 2001 From: Morten Kristensen Date: Tue, 18 Sep 2018 15:23:19 +0200 Subject: Fix shortcuts in dock widgets with custom title bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QWidgetResizeHandler cannot be sure that it will see the MouseReleaseEvent and therefore buttonDown could be set wrong (and is set wrong in QGraphicsViews). When the mouse is up, the widget should not think it is moving or re-sizing the dock widget. A similar fix exists in the code a few lines above. Task-number: QTBUG-70596 Change-Id: I52ce487836bc71da8fd7d71f8a89e21b51406d00 Reviewed-by: Sérgio Martins Reviewed-by: Christian Ehrlicher Reviewed-by: Thorbjørn Lund Martsum Reviewed-by: Richard Moe Gustavsen --- src/widgets/widgets/qwidgetresizehandler.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/widgets/widgets/qwidgetresizehandler.cpp b/src/widgets/widgets/qwidgetresizehandler.cpp index 45010d1768..7ed6f6d78d 100644 --- a/src/widgets/widgets/qwidgetresizehandler.cpp +++ b/src/widgets/widgets/qwidgetresizehandler.cpp @@ -192,6 +192,7 @@ bool QWidgetResizeHandler::eventFilter(QObject *o, QEvent *ee) keyPressEvent(static_cast(ee)); break; case QEvent::ShortcutOverride: + buttonDown &= ((QGuiApplication::mouseButtons() & Qt::LeftButton) != Qt::NoButton); if (buttonDown) { ee->accept(); return true; -- cgit v1.2.3 From 2e94947c5602800b540fdabbb9c058a63f13e9d0 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 20 Sep 2018 13:22:09 +0200 Subject: qnsview_key/qnsview_mouse make Ctrl+left click work again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A result of typo/incorrect keyboard modifiers extracted + wrong button sent via QWindowSystemInterface::handleMouseEvent. Task-number: QTBUG-70512 Change-Id: I809168e363496884312412051e8d435f5794b3be Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qnsview_keys.mm | 2 +- src/plugins/platforms/cocoa/qnsview_mouse.mm | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/plugins/platforms/cocoa/qnsview_keys.mm b/src/plugins/platforms/cocoa/qnsview_keys.mm index 85c0607265..28db532ddc 100644 --- a/src/plugins/platforms/cocoa/qnsview_keys.mm +++ b/src/plugins/platforms/cocoa/qnsview_keys.mm @@ -47,7 +47,7 @@ Qt::KeyboardModifiers qtMods =Qt::NoModifier; if (modifierFlags & NSEventModifierFlagShift) qtMods |= Qt::ShiftModifier; - if (modifierFlags & NSEventModifierFlagShift) + if (modifierFlags & NSEventModifierFlagControl) qtMods |= dontSwapCtrlAndMeta ? Qt::ControlModifier : Qt::MetaModifier; if (modifierFlags & NSEventModifierFlagOption) qtMods |= Qt::AltModifier; diff --git a/src/plugins/platforms/cocoa/qnsview_mouse.mm b/src/plugins/platforms/cocoa/qnsview_mouse.mm index 468f26ffb4..3d6471005d 100644 --- a/src/plugins/platforms/cocoa/qnsview_mouse.mm +++ b/src/plugins/platforms/cocoa/qnsview_mouse.mm @@ -198,7 +198,9 @@ const auto modifiers = [QNSView convertKeyModifiers:theEvent.modifierFlags]; const auto buttons = currentlyPressedMouseButtons(); - const auto button = cocoaButton2QtButton(theEvent); + auto button = cocoaButton2QtButton(theEvent); + if (button == Qt::LeftButton && m_sendUpAsRightButton) + button = Qt::RightButton; const auto eventType = cocoaEvent2QtMouseEvent(theEvent); QWindowSystemInterface::handleMouseEvent(targetView->m_platformWindow->window(), @@ -266,12 +268,14 @@ if (m_sendUpAsRightButton && button == Qt::LeftButton) button = Qt::RightButton; - if (button == Qt::RightButton) - m_sendUpAsRightButton = false; m_buttons &= ~button; [self handleMouseEvent:theEvent]; + + if (button == Qt::RightButton) + m_sendUpAsRightButton = false; + return true; } -- cgit v1.2.3