From d615fb39d58d61d244a460ee13f11c73431a35e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 17 Aug 2018 09:47:59 +0200 Subject: Make QMacCocoaViewContainer work again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The widget visibility state was set to explicitly hidden, which was preventing it from working correctly when its parent widget was shown. This regression was introduced by commit d7a9e08, which made QWindow::setVisible() call QWidget::setVisible(). QWindow::destroy() calls QWindow::setVisible(false), which means that the destroy() call in setCocoaView() would set the CoocaViewContainer to be explicitly hidden. Clear WA_WState_Hidden to work around this behavior. Task-number: QTBUG-67504 Change-Id: I77438fcd01f165f058eea178c214838bd4f27084 Reviewed-by: Tor Arne Vestbø --- src/widgets/widgets/qmaccocoaviewcontainer_mac.mm | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm b/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm index 98ee90deb7..0b64b2a2bb 100644 --- a/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm +++ b/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm @@ -165,6 +165,11 @@ void QMacCocoaViewContainer::setCocoaView(NSView *view) Q_ASSERT(window->handle()); [oldView release]; + + // The QWindow::destroy()) call above will explicitly hide this widget. + // Clear the hidden state here so it can be implicitly shown again. + setAttribute(Qt::WA_WState_Hidden, false); + } QT_END_NAMESPACE -- cgit v1.2.3