xwin: In multiwindow mode, look up the HWND for the parent window
Rather than only looking at the foreground window to see if it matches the WM_TRANSIENT_FOR window XID, lookup that XID and fetch the HWND from the window privates. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
This commit is contained in:
		
							parent
							
								
									856a28f637
								
							
						
					
					
						commit
						e7f87f8f76
					
				| 
						 | 
					@ -523,9 +523,13 @@ winCreateWindowsWindow(WindowPtr pWin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (winMultiWindowGetTransientFor(pWin, &daddyId)) {
 | 
					    if (winMultiWindowGetTransientFor(pWin, &daddyId)) {
 | 
				
			||||||
        if (daddyId) {
 | 
					        if (daddyId) {
 | 
				
			||||||
            hFore = GetForegroundWindow();
 | 
					            WindowPtr pParent;
 | 
				
			||||||
            if (hFore && (daddyId != (Window) (INT_PTR) GetProp(hFore, WIN_WID_PROP)))
 | 
					            int res = dixLookupWindow(&pParent, daddyId, serverClient, DixReadAccess);
 | 
				
			||||||
                hFore = NULL;
 | 
					            if (res == Success)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    winPrivWinPtr pParentPriv = winGetWindowPriv(pParent);
 | 
				
			||||||
 | 
					                    hFore = pParentPriv->hWnd;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue