dix: Skip more code in SetRootClip for ROOT_CLIP_INPUT_ONLY
Despite e957a2e5dd
("dix: Add hybrid full-size/empty-clip mode to
SetRootClip"), I was still seeing all X11 client windows flashing when
the root window size changes with rootless Xwayland (e.g. due to
hotplugging a monitor).
Skipping this code for ROOT_CLIP_INPUT_ONLY fixes the issue for me.
This commit is contained in:
parent
4603d64483
commit
f778b56a74
|
@ -3642,7 +3642,7 @@ SetRootClip(ScreenPtr pScreen, int enable)
|
||||||
if (!pWin)
|
if (!pWin)
|
||||||
return;
|
return;
|
||||||
WasViewable = (Bool) (pWin->viewable);
|
WasViewable = (Bool) (pWin->viewable);
|
||||||
if (WasViewable) {
|
if (WasViewable && mode != ROOT_CLIP_INPUT_ONLY) {
|
||||||
for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) {
|
for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) {
|
||||||
(void) (*pScreen->MarkOverlappedWindows) (pChild,
|
(void) (*pScreen->MarkOverlappedWindows) (pChild,
|
||||||
pChild, &pLayerWin);
|
pChild, &pLayerWin);
|
||||||
|
@ -3696,7 +3696,7 @@ SetRootClip(ScreenPtr pScreen, int enable)
|
||||||
|
|
||||||
ResizeChildrenWinSize(pWin, 0, 0, 0, 0);
|
ResizeChildrenWinSize(pWin, 0, 0, 0, 0);
|
||||||
|
|
||||||
if (WasViewable) {
|
if (WasViewable && mode != ROOT_CLIP_INPUT_ONLY) {
|
||||||
if (pWin->firstChild) {
|
if (pWin->firstChild) {
|
||||||
anyMarked |= (*pScreen->MarkOverlappedWindows) (pWin->firstChild,
|
anyMarked |= (*pScreen->MarkOverlappedWindows) (pWin->firstChild,
|
||||||
pWin->firstChild,
|
pWin->firstChild,
|
||||||
|
|
Loading…
Reference in New Issue