diff --git a/internal/driver/glfw/window_windows.go b/internal/driver/glfw/window_windows.go index 35c6768472..445b2c5fdc 100644 --- a/internal/driver/glfw/window_windows.go +++ b/internal/driver/glfw/window_windows.go @@ -16,13 +16,17 @@ func (w *window) setDarkMode() { if runtime.GOOS == "windows" { hwnd := w.view().GetWin32Window() dark := isDark() - + // cannot use a go bool. + var winBool int32 + if dark { + winBool = 1 + } dwm := syscall.NewLazyDLL("dwmapi.dll") setAtt := dwm.NewProc("DwmSetWindowAttribute") ret, _, err := setAtt.Call(uintptr(unsafe.Pointer(hwnd)), // window handle 20, // DWMWA_USE_IMMERSIVE_DARK_MODE - uintptr(unsafe.Pointer(&dark)), // on or off - 8) // sizeof(darkMode) + uintptr(unsafe.Pointer(&winBool)), // on or off + 4) // sizeof(bool for windows) if ret != 0 && ret != 0x80070057 { // err is always non-nil, we check return value (except erroneous code) fyne.LogError("Failed to set dark mode", err)