diff --git a/src/window/window_win32/window_win32.c b/src/window/window_win32/window_win32.c index 6cf35a1c..b32b9d5f 100644 --- a/src/window/window_win32/window_win32.c +++ b/src/window/window_win32/window_win32.c @@ -221,14 +221,21 @@ LRESULT CALLBACK WND_W32_WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM l case WM_SETCURSOR: { - /* FIXME */ - HCURSOR new_cursor = (HCURSOR)Atomic64Fetch(&window->new_cursor); - if (new_cursor != window->active_cursor) + if ((HWND)wparam == hwnd && LOWORD(lparam) == HTCLIENT) { - SetCursor(new_cursor); - window->active_cursor = new_cursor; + HCURSOR new_cursor = (HCURSOR)Atomic64Fetch(&window->new_cursor); + if (new_cursor != window->active_cursor) + { + SetCursor(new_cursor); + window->active_cursor = new_cursor; + } result = 1; } + else + { + result = DefWindowProcW(hwnd, msg, wparam, lparam); + window->active_cursor = GetCursor(); + } } break; //- Keyboard button