From d2ec7e05eb26a7b877eef1d78f2b7acbfb20336e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 23 May 2013 15:36:31 +0200 Subject: [PATCH] Fix crash in QCococaWindow::childWindowAt(). Task-number: QTBUG-31297 Change-Id: I96f4652e410334fae54a0012ed917a965becfe5c Reviewed-by: Shawn Rutledge Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qcocoawindow.mm | 14 +++++--------- 1 file 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(child)) { - if (childWindow->geometry().contains(windowPoint)) { - QCocoaWindow* platformWindow = static_cast(childWindow->handle()); - if (platformWindow->isExposed()) - targetWindow = platformWindow->childWindowAt(windowPoint - childWindow->position()); - } - } - } + foreach (QObject *child, targetWindow->children()) + if (QWindow *childWindow = qobject_cast(child)) + if (QPlatformWindow *handle = childWindow->handle()) + if (handle->isExposed() && childWindow->geometry().contains(windowPoint)) + targetWindow = static_cast(handle)->childWindowAt(windowPoint - childWindow->position()); return targetWindow; }