5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-08 03:51:15 +08:00

[v3 windows] Support isDarkMode

This commit is contained in:
Lea Anthony 2023-08-18 19:45:59 +10:00
parent ffed41553a
commit c367ef461e
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405

View File

@ -41,8 +41,12 @@ type windowsApp struct {
focusedWindow w32.HWND
// system theme
isDarkMode bool
currentWindowID uint
isCurrentlyDarkMode bool
currentWindowID uint
}
func (m *windowsApp) isDarkMode() bool {
return w32.IsCurrentlyDarkMode()
}
func (m *windowsApp) isOnMainThread() bool {
@ -207,7 +211,7 @@ func (m *windowsApp) init() {
if ret := w32.RegisterClassEx(&m.windowClass); ret == 0 {
panic(syscall.GetLastError())
}
m.isDarkMode = w32.IsCurrentlyDarkMode()
m.isCurrentlyDarkMode = w32.IsCurrentlyDarkMode()
}
func (m *windowsApp) wndProc(hwnd w32.HWND, msg uint32, wParam, lParam uintptr) uintptr {
@ -231,9 +235,9 @@ func (m *windowsApp) wndProc(hwnd w32.HWND, msg uint32, wParam, lParam uintptr)
settingChanged := w32.UTF16PtrToString((*uint16)(unsafe.Pointer(lParam)))
if settingChanged == "ImmersiveColorSet" {
isDarkMode := w32.IsCurrentlyDarkMode()
if isDarkMode != m.isDarkMode {
if isDarkMode != m.isCurrentlyDarkMode {
applicationEvents <- uint(events.Windows.SystemThemeChanged)
m.isDarkMode = isDarkMode
m.isCurrentlyDarkMode = isDarkMode
}
}
return 0