summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2013-05-16 16:13:09 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-22 10:31:03 +0200
commit381c0050c12965edc0a44ef7eae0bf6d7388a15a (patch)
treece57736ec90abf00a050fb0551f0b11f87961b70 /src/plugins/platforms
parent2cde2fca6f7b584fd01c0e3eec0209447963b665 (diff)
Ignore mouse enter/leave on non-exposed windows
If you put two OpenGL widgets in two tabs, you will have several QNSViews on the Mac (because using OpenGL forces a lot of the widgets to be non-alien). The GL widget on the non-visible tab will not be exposed, but QCocoaWindow::childWindowAt is recursive and was returning the last window found which contained the mouse location; but the children are not reordered when switching tabs. It should ignore the invisible windows and report that the mouse entered the one which is visible. Task-number: QTBUG-30934 Change-Id: Iae28db56e15815671bf39e1b1f382c8c285532bd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index d4aa32b821..17bc8b5ca1 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -998,7 +998,8 @@ QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint)
if (QWindow *childWindow = qobject_cast<QWindow *>(child)) {
if (childWindow->geometry().contains(windowPoint)) {
QCocoaWindow* platformWindow = static_cast<QCocoaWindow*>(childWindow->handle());
- targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position());
+ if (platformWindow->isExposed())
+ targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position());
}
}
}