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