From 91c46af76781ea0ee243b6762710244784c4ec0e Mon Sep 17 00:00:00 2001 From: tytan652 Date: Thu, 28 Jul 2022 12:16:28 +0200 Subject: [PATCH] UI: Fix close display before native surfaces A QPlatformSurfaceEvent constant is used in a switch that only accept QEvent type. timerEvent() is missing the override keyword. https://github.com/obsproject/obs-studio/commit/f8d415afbee4873a3eb15c7e77833fbee6c87871 --- UI/qt-display.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/UI/qt-display.cpp b/UI/qt-display.cpp index 07c663dfd..c8fb28784 100644 --- a/UI/qt-display.cpp +++ b/UI/qt-display.cpp @@ -33,17 +33,21 @@ protected: case QEvent::PlatformSurface: surfaceEvent = static_cast(event); - if (surfaceEvent->surfaceEventType() != - QPlatformSurfaceEvent::SurfaceCreated) - return result; - if (display->windowHandle()->isExposed()) - createOBSDisplay(); - else - mTimerId = startTimer(67); // Arbitrary - break; - case QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed: - display->DestroyDisplay(); + switch (surfaceEvent->surfaceEventType()) { + case QPlatformSurfaceEvent::SurfaceCreated: + if (display->windowHandle()->isExposed()) + createOBSDisplay(); + else + mTimerId = startTimer(67); // Arbitrary + break; + case QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed: + display->DestroyDisplay(); + break; + default: + break; + } + break; case QEvent::Expose: createOBSDisplay(); @@ -55,7 +59,7 @@ protected: return result; } - void timerEvent(QTimerEvent *) + void timerEvent(QTimerEvent *) override { createOBSDisplay(display->isVisible()); }