mirror of
				https://github.com/glfw/glfw.git
				synced 2025-11-03 22:04:15 +00:00 
			
		
		
		
	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