xwin: Check that window position is visible on non-rectangular virtual desktops
Improve the check that window position is visible to work correctly for non-rectangular virtual desktops Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
This commit is contained in:
		
							parent
							
								
									a9e73131b6
								
							
						
					
					
						commit
						de7f1fd6f8
					
				| 
						 | 
				
			
			@ -503,15 +503,19 @@ winCreateWindowsWindow(WindowPtr pWin)
 | 
			
		|||
    iHeight = pWin->drawable.height;
 | 
			
		||||
 | 
			
		||||
    /* If it's an InputOutput window, and so is going to end up being made visible,
 | 
			
		||||
       make sure the window actually ends up somewhere where it will be visible */
 | 
			
		||||
    if (pWin->drawable.class != InputOnly) {
 | 
			
		||||
        if ((iX < GetSystemMetrics(SM_XVIRTUALSCREEN)) ||
 | 
			
		||||
            (iX > GetSystemMetrics(SM_CXVIRTUALSCREEN)))
 | 
			
		||||
            iX = CW_USEDEFAULT;
 | 
			
		||||
       make sure the window actually ends up somewhere where it will be visible
 | 
			
		||||
 | 
			
		||||
        if ((iY < GetSystemMetrics(SM_YVIRTUALSCREEN)) ||
 | 
			
		||||
            (iY > GetSystemMetrics(SM_CYVIRTUALSCREEN)))
 | 
			
		||||
            iY = CW_USEDEFAULT;
 | 
			
		||||
       To handle arrangements of monitors which form a non-rectangular virtual
 | 
			
		||||
       desktop, check if the window will end up with it's top-left corner on any
 | 
			
		||||
       monitor
 | 
			
		||||
    */
 | 
			
		||||
    if (pWin->drawable.class != InputOnly) {
 | 
			
		||||
        POINT pt = { iX, iY };
 | 
			
		||||
        if (MonitorFromPoint(pt, MONITOR_DEFAULTTONULL) == NULL)
 | 
			
		||||
            {
 | 
			
		||||
                iX = CW_USEDEFAULT;
 | 
			
		||||
                iY = CW_USEDEFAULT;
 | 
			
		||||
            }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    winDebug("winCreateWindowsWindow - %dx%d @ %dx%d\n", iWidth, iHeight, iX,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue