From 8a6f94ae95b2b91d8b3b249bca32beaabb5d5719 Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Mon, 9 Sep 2024 20:31:49 +0200
Subject: [PATCH] only lock cursor if message was removed

---
 src/winapi_hooks.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c
index 7bb85c0..019f2da 100644
--- a/src/winapi_hooks.c
+++ b/src/winapi_hooks.c
@@ -631,7 +631,7 @@ void HandleMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMa
         case WM_RBUTTONUP:
         case WM_MBUTTONUP:
         {
-            if (!g_config.devmode && !g_mouse_locked)
+            if (!g_config.devmode && !g_mouse_locked && (wRemoveMsg & PM_REMOVE))
             {
                 InterlockedExchange((LONG*)&g_ddraw.cursor.x, GET_X_LPARAM(lpMsg->lParam));
                 InterlockedExchange((LONG*)&g_ddraw.cursor.y, GET_Y_LPARAM(lpMsg->lParam));
@@ -693,7 +693,7 @@ BOOL WINAPI fake_GetMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wM
     BOOL result = real_GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
     if (result)
     {
-        HandleMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, 0);
+        HandleMessage(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, PM_REMOVE);
     }
 
     return result;