Fix Win32 custom cursor set for non-client area
Udating the cursor via glfwSetCursor incorrectly included the non-client area of the window.
This commit is contained in:
parent
5620895e88
commit
fca5a8ab48
@ -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…
Reference in New Issue
Block a user