From 9ca30826db7f919ae29640b965e4dfa0fd20c374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Sat, 13 May 2023 18:18:45 -0300 Subject: [PATCH] Fix win32 mouse cursor permanently disappearing --- src/common/platform/win32/i_mouse.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/common/platform/win32/i_mouse.cpp b/src/common/platform/win32/i_mouse.cpp index 9084529166..37ee357098 100644 --- a/src/common/platform/win32/i_mouse.cpp +++ b/src/common/platform/win32/i_mouse.cpp @@ -189,6 +189,8 @@ CUSTOM_CVAR (Int, in_mouse, 0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG|CVAR_NOINITCALL) // //========================================================================== +static bool mouse_shown = true; + static void SetCursorState(bool visible) { CursorState = visible || !m_hidepointer; @@ -196,13 +198,19 @@ static void SetCursorState(bool visible) { if (CursorState) { - ShowCursor(1); - SetCursor((HCURSOR)(intptr_t)GetClassLongPtr(mainwindow.GetHandle(), GCLP_HCURSOR)); + if(!mouse_shown) + { + ShowCursor(true); + mouse_shown = true; + } } else { - ShowCursor(0); - SetCursor(NULL); + if(mouse_shown) + { + ShowCursor(false); + mouse_shown = false; + } } } }