Resize composite overlay window when the root window changes.
- This allows some compositing managers to work, even after randr12 has changed the root window size. - Thanks to ajax for figuring out the best place to put this. - Example: - xf86RandR12SetMode() calls EnableDisableFBAccess(). - That calls xf86SetRootClip() which in turn calls ResizeChildrenWinSize(). - The final step is the call to PositionWindow().
This commit is contained in:
parent
b95059c207
commit
70c0592a97
|
@ -165,6 +165,29 @@ compCheckRedirect (WindowPtr pWin)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
updateOverlayWindow(ScreenPtr pScreen)
|
||||
{
|
||||
CompScreenPtr cs;
|
||||
WindowPtr pWin; /* overlay window */
|
||||
XID vlist[2];
|
||||
|
||||
cs = GetCompScreen(pScreen);
|
||||
if ((pWin = cs->pOverlayWin) != NULL) {
|
||||
if ((pWin->drawable.width == pScreen->width) &&
|
||||
(pWin->drawable.height == pScreen->height))
|
||||
return Success;
|
||||
|
||||
/* Let's resize the overlay window. */
|
||||
vlist[0] = pScreen->width;
|
||||
vlist[1] = pScreen->height;
|
||||
return ConfigureWindow(pWin, CWWidth | CWHeight, vlist, wClient(pWin));
|
||||
}
|
||||
|
||||
/* Let's be on the safe side and not assume an overlay window is always allocated. */
|
||||
return Success;
|
||||
}
|
||||
|
||||
Bool
|
||||
compPositionWindow (WindowPtr pWin, int x, int y)
|
||||
{
|
||||
|
@ -203,6 +226,8 @@ compPositionWindow (WindowPtr pWin, int x, int y)
|
|||
cs->PositionWindow = pScreen->PositionWindow;
|
||||
pScreen->PositionWindow = compPositionWindow;
|
||||
compCheckTree (pWin->drawable.pScreen);
|
||||
if (updateOverlayWindow(pScreen) != Success)
|
||||
ret = FALSE;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user