UI: Refactor Windows taskbar switch

This commit is contained in:
tytan652 2022-08-26 23:15:13 +02:00
parent 107b2a8f27
commit 8fad36868e

View file

@ -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();
}