diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2019-03-29 17:33:11 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2019-05-07 10:59:12 +0000 |
commit | 24eb0b33a40d005f8c863a6d02c88f25370cb3b3 (patch) | |
tree | 49daefa9be5b66c99a82e9349578daad1e123693 /src/plugins/platforms/cocoa/qnswindowdelegate.mm | |
parent | fc9baeeb9f6360051cb02d1da6c094aa8154f58e (diff) |
macOS: don’t crash when wrapping foreign views
window.contentView can be of any NSView subclass.
Get to the QCocoaWindow via QCocoaNSWindow instead.
Change-Id: I8c761fd22e6078b075d8dd035ad767b9e4cb6da2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/platforms/cocoa/qnswindowdelegate.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qnswindowdelegate.mm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm index 087cb3651f..9502a315d8 100644 --- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm +++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm @@ -51,7 +51,9 @@ static QRegExp whitespaceRegex = QRegExp(QStringLiteral("\\s*")); static QCocoaWindow *toPlatformWindow(NSWindow *window) { - return qnsview_cast(window.contentView).platformWindow; + if ([window conformsToProtocol:@protocol(QNSWindowProtocol)]) + return static_cast<QCocoaNSWindow *>(window).platformWindow; + return nullptr; } @implementation QNSWindowDelegate |