From c7b6e5fec488d5b71a803afdc7c864be61f42674 Mon Sep 17 00:00:00 2001 From: Matej Knopp Date: Thu, 7 May 2020 13:57:48 +0200 Subject: [PATCH] Attempt to workaround for crash when waking up --- src/plugins/platforms/cocoa/qcocoascreen.mm | 6 ++++-- src/plugins/platforms/cocoa/qcocoawindow.mm | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoascreen.mm b/src/plugins/platforms/cocoa/qcocoascreen.mm index 6a3172fb19..db1ac9cc97 100644 --- a/src/plugins/platforms/cocoa/qcocoascreen.mm +++ b/src/plugins/platforms/cocoa/qcocoascreen.mm @@ -120,8 +120,10 @@ void QCocoaScreen::initializeScreens() CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, tryScreenUpdate); } } else { - Q_ASSERT_X(displayReconfigurationsInProgress, "QCococaScreen", - "Display configuration transactions are expected to be balanced"); + if (displayReconfigurationsInProgress == 0) + return; + // Q_ASSERT_X(displayReconfigurationsInProgress, "QCococaScreen", + // "Display configuration transactions are expected to be balanced"); if (!--displayReconfigurationsInProgress) { qCDebug(lcQpaScreen) << "Display reconfigure transaction completed"; diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 24e98f5bac..f9aa46050e 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1264,6 +1264,10 @@ void QCocoaWindow::windowDidChangeScreen() // Note: When a window is resized to 0x0 Cocoa will report the window's screen as nil auto *currentScreen = QCocoaScreen::get(m_view.window.screen); + + if (!currentScreen) + return; + auto *previousScreen = static_cast(screen()); Q_ASSERT_X(!m_view.window.screen || currentScreen, -- 2.24.0