Переглянути джерело

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
tytan652 3 роки тому
батько
коміт
91c46af767
1 змінених файлів з 16 додано та 12 видалено
  1. 16 12
      UI/qt-display.cpp

+ 16 - 12
UI/qt-display.cpp

@@ -33,17 +33,21 @@ protected:
 		case QEvent::PlatformSurface:
 			surfaceEvent =
 				static_cast<QPlatformSurfaceEvent *>(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());
 	}