mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-16 14:56:00 +00:00
Support dark theme for tray menus on Windows
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "../SDL_tray_utils.h"
|
#include "../SDL_tray_utils.h"
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
#include "../../video/windows/SDL_windowswindow.h"
|
||||||
|
|
||||||
#include <windowsx.h>
|
#include <windowsx.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
@@ -130,6 +131,12 @@ LRESULT CALLBACK TrayWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_SETTINGCHANGE:
|
||||||
|
if (wParam == 0 && lParam != 0 && SDL_wcscmp((wchar_t *)lParam, L"ImmersiveColorSet") == 0) {
|
||||||
|
WIN_UpdateDarkModeForHWND(hwnd);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
@@ -193,6 +200,8 @@ SDL_Tray *SDL_CreateTray(SDL_Surface *icon, const char *tooltip)
|
|||||||
tray->hwnd = CreateWindowEx(0, TEXT("Message"), NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, NULL, NULL);
|
tray->hwnd = CreateWindowEx(0, TEXT("Message"), NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, NULL, NULL);
|
||||||
SetWindowLongPtr(tray->hwnd, GWLP_WNDPROC, (LONG_PTR) TrayWindowProc);
|
SetWindowLongPtr(tray->hwnd, GWLP_WNDPROC, (LONG_PTR) TrayWindowProc);
|
||||||
|
|
||||||
|
WIN_UpdateDarkModeForHWND(tray->hwnd);
|
||||||
|
|
||||||
SDL_zero(tray->nid);
|
SDL_zero(tray->nid);
|
||||||
tray->nid.cbSize = sizeof(NOTIFYICONDATAW);
|
tray->nid.cbSize = sizeof(NOTIFYICONDATAW);
|
||||||
tray->nid.hWnd = tray->hwnd;
|
tray->nid.hWnd = tray->hwnd;
|
||||||
|
Reference in New Issue
Block a user