summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-05-23 15:36:31 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-23 20:01:40 +0200
commitd2ec7e05eb26a7b877eef1d78f2b7acbfb20336e (patch)
tree5b96c599c957858c099d440418b8457e4d210382
parentc1ca272f04465b58a7b1720df3b03c6573de8851 (diff)
Fix crash in QCococaWindow::childWindowAt().
Task-number: QTBUG-31297 Change-Id: I96f4652e410334fae54a0012ed917a965becfe5c Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 30c2a99fd8..c8ef967f20 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -1010,15 +1010,11 @@ void QCocoaWindow::obscureWindow()
QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint)
{
QWindow *targetWindow = window();
- foreach (QObject *child, targetWindow->children()) {
- if (QWindow *childWindow = qobject_cast<QWindow *>(child)) {
- if (childWindow->geometry().contains(windowPoint)) {
- QCocoaWindow* platformWindow = static_cast<QCocoaWindow*>(childWindow->handle());
- if (platformWindow->isExposed())
- targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position());
- }
- }
- }
+ foreach (QObject *child, targetWindow->children())
+ if (QWindow *childWindow = qobject_cast<QWindow *>(child))
+ if (QPlatformWindow *handle = childWindow->handle())
+ if (handle->isExposed() && childWindow->geometry().contains(windowPoint))
+ targetWindow = static_cast<QCocoaWindow*>(handle)->childWindowAt(windowPoint - childWindow->position());
return targetWindow;
}