Fix Win32 custom cursor set for non-client area

Udating the cursor via glfwSetCursor incorrectly included the non-client
area of the window.
master
Camilla Berglund ago%!(EXTRA string=9 years)
parent 5620895e88
commit fca5a8ab48
  1. 8
      src/win32_window.c

@ -1319,6 +1319,7 @@ void _glfwPlatformDestroyCursor(_GLFWcursor* cursor)
void _glfwPlatformSetCursor(_GLFWwindow* window, _GLFWcursor* cursor)
{
RECT area;
POINT pos;
if (_glfw.cursorWindow != window)
@ -1333,6 +1334,13 @@ void _glfwPlatformSetCursor(_GLFWwindow* window, _GLFWcursor* cursor)
if (WindowFromPoint(pos) != window->win32.handle)
return;
GetClientRect(window->win32.handle, &area);
ClientToScreen(window->win32.handle, (POINT*) &area.left);
ClientToScreen(window->win32.handle, (POINT*) &area.right);
if (!PtInRect(&area, pos))
return;
if (cursor)
SetCursor(cursor->win32.handle);
else

Loading…
Cancel
Save