allow os to set cursor outside of client area

This commit is contained in:
jacob 2025-12-19 20:15:12 -06:00
parent 0075263e2f
commit 0cf1dbebf9

View File

@ -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