From 58b48a3a00d9c2a5ca10cc23069a71d8773cc7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camilla=20L=C3=B6wy?= Date: Mon, 2 Aug 2021 21:42:36 +0200 Subject: [PATCH] Win32: Remove changing the foreground lock timeout It's rude to ignore the foreground lock timeout, especially by default. Discussion of this code and its removal: https://discourse.glfw.org/t/why-is-spi-setforegroundlocktimeout-set-to-zero-on-glfwinit-win32 --- README.md | 1 + src/win32_init.c | 13 ------------- src/win32_platform.h | 1 - 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/README.md b/README.md index 96f99acd..ec375401 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ information on what to include when reporting a bug. - [Win32] Bugfix: `USE_MSVC_RUNTIME_LIBRARY_DLL` had no effect on CMake 3.15 or later (#1783,#1796) - [Win32] Bugfix: Compilation with LLVM for Windows failed (#1807,#1824,#1874) + - [Win32] Bugfix: The foreground lock timeout was overridden, ignoring the user - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619) - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle - [Cocoa] Moved main menu creation to GLFW initialization time (#1649) diff --git a/src/win32_init.c b/src/win32_init.c index 970da06e..cd7ea08e 100644 --- a/src/win32_init.c +++ b/src/win32_init.c @@ -558,14 +558,6 @@ BOOL _glfwIsWindows10BuildOrGreaterWin32(WORD build) int _glfwPlatformInit(void) { - // To make SetForegroundWindow work as we want, we need to fiddle - // with the FOREGROUNDLOCKTIMEOUT system setting (we do this as early - // as possible in the hope of still being the foreground process) - SystemParametersInfoW(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, - &_glfw.win32.foregroundLockTimeout, 0); - SystemParametersInfoW(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, UIntToPtr(0), - SPIF_SENDCHANGE); - if (!loadLibraries()) return GLFW_FALSE; @@ -601,11 +593,6 @@ void _glfwPlatformTerminate(void) _glfwUnregisterWindowClassWin32(); - // Restore previous foreground lock timeout system setting - SystemParametersInfoW(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, - UIntToPtr(_glfw.win32.foregroundLockTimeout), - SPIF_SENDCHANGE); - free(_glfw.win32.clipboardString); free(_glfw.win32.rawInput); diff --git a/src/win32_platform.h b/src/win32_platform.h index 6449a711..a16047ae 100644 --- a/src/win32_platform.h +++ b/src/win32_platform.h @@ -330,7 +330,6 @@ typedef struct _GLFWlibraryWin32 { HWND helperWindowHandle; HDEVNOTIFY deviceNotificationHandle; - DWORD foregroundLockTimeout; int acquiredMonitorCount; char* clipboardString; short int keycodes[512];