Browse Source

UI: Refactor Windows taskbar switch

tytan652 3 years ago
parent
commit
8fad36868e
1 changed files with 25 additions and 26 deletions
  1. 25 26
      UI/platform-windows.cpp

+ 25 - 26
UI/platform-windows.cpp

@@ -465,33 +465,32 @@ void TaskbarOverlaySetStatus(TaskbarOverlayStatus status)
 		return;
 	}
 
-	if (status != TaskbarOverlayStatusInactive) {
-		QIcon qicon;
-		switch (status) {
-		case TaskbarOverlayStatusActive:
-			qicon = QIcon::fromTheme(
-				"obs-active", QIcon(":/res/images/active.png"));
-			break;
-		case TaskbarOverlayStatusPaused:
-			qicon = QIcon::fromTheme(
-				"obs-paused", QIcon(":/res/images/paused.png"));
-			break;
-		}
-
-		HICON hicon = nullptr;
-		if (!qicon.isNull()) {
-			Q_GUI_EXPORT HICON qt_pixmapToWinHICON(
-				const QPixmap &p);
-			hicon = qt_pixmapToWinHICON(
-				qicon.pixmap(GetSystemMetrics(SM_CXSMICON)));
-			if (!hicon)
-				return;
-		}
-
-		taskbarIcon->SetOverlayIcon(hwnd, hicon, nullptr);
-		DestroyIcon(hicon);
-	} else {
+	QIcon qicon;
+	switch (status) {
+	case TaskbarOverlayStatusActive:
+		qicon = QIcon::fromTheme("obs-active",
+					 QIcon(":/res/images/active.png"));
+		break;
+	case TaskbarOverlayStatusPaused:
+		qicon = QIcon::fromTheme("obs-paused",
+					 QIcon(":/res/images/paused.png"));
+		break;
+	case TaskbarOverlayStatusInactive:
 		taskbarIcon->SetOverlayIcon(hwnd, nullptr, nullptr);
+		taskbarIcon->Release();
+		return;
 	}
+
+	HICON hicon = nullptr;
+	if (!qicon.isNull()) {
+		Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &p);
+		hicon = qt_pixmapToWinHICON(
+			qicon.pixmap(GetSystemMetrics(SM_CXSMICON)));
+		if (!hicon)
+			return;
+	}
+
+	taskbarIcon->SetOverlayIcon(hwnd, hicon, nullptr);
+	DestroyIcon(hicon);
 	taskbarIcon->Release();
 }