diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-05-23 15:36:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-23 20:01:40 +0200 |
commit | d2ec7e05eb26a7b877eef1d78f2b7acbfb20336e (patch) | |
tree | 5b96c599c957858c099d440418b8457e4d210382 /src | |
parent | c1ca272f04465b58a7b1720df3b03c6573de8851 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 14 |
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; } |