From 90d59998f22b97a3d72c9bbe4484bdcb1c341ab1 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 22 Feb 2021 05:29:19 +0100 Subject: [PATCH] Correctly handle mouse leaving the window --- Source/diablo.cpp | 8 ++------ SourceX/miniwin/misc_msg.cpp | 4 +++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 6654aa4a9..36b15fb11 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -1360,8 +1360,6 @@ void DisableInputWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) sgbMouseDown = CLICK_NONE; return; case DVL_WM_CAPTURECHANGED: - if (hWnd == (HWND)lParam) - return; sgbMouseDown = CLICK_NONE; return; } @@ -1425,10 +1423,8 @@ void GM_Game(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } return; case DVL_WM_CAPTURECHANGED: - if (hWnd != (HWND)lParam) { - sgbMouseDown = CLICK_NONE; - track_repeat_walk(FALSE); - } + sgbMouseDown = CLICK_NONE; + track_repeat_walk(FALSE); break; case WM_DIABNEXTLVL: case WM_DIABPREVLVL: diff --git a/SourceX/miniwin/misc_msg.cpp b/SourceX/miniwin/misc_msg.cpp index 6f7662bdc..346e5b284 100644 --- a/SourceX/miniwin/misc_msg.cpp +++ b/SourceX/miniwin/misc_msg.cpp @@ -537,13 +537,15 @@ bool PeekMessage(LPMSG lpMsg) case SDL_WINDOWEVENT_EXPOSED: lpMsg->message = DVL_WM_PAINT; break; + case SDL_WINDOWEVENT_LEAVE: + lpMsg->message = DVL_WM_CAPTURECHANGED; + break; case SDL_WINDOWEVENT_MOVED: case SDL_WINDOWEVENT_RESIZED: case SDL_WINDOWEVENT_SIZE_CHANGED: case SDL_WINDOWEVENT_MINIMIZED: case SDL_WINDOWEVENT_MAXIMIZED: case SDL_WINDOWEVENT_RESTORED: - case SDL_WINDOWEVENT_LEAVE: case SDL_WINDOWEVENT_FOCUS_GAINED: case SDL_WINDOWEVENT_FOCUS_LOST: #if SDL_VERSION_ATLEAST(2, 0, 5)