don't try to raise unmapped input windows

or screenedges over unmapped
causes race with kscreenlocker

BUG: 303579
REVIEW: 105585
FIXED-IN: 4.10
This commit is contained in:
Thomas Lübking 2012-07-16 21:57:11 +02:00
parent f775229a80
commit 7231694072

View file

@ -1077,13 +1077,16 @@ void EffectsHandlerImpl::checkInputWindowStacking()
if (XGetWindowAttributes(display(), it.second, &attr) && attr.map_state != IsUnmapped)
wins[pos++] = it.second;
}
XRaiseWindow(display(), wins[0]);
XRestackWindows(display(), wins, pos);
if (pos) {
XRaiseWindow(display(), wins[0]);
XRestackWindows(display(), wins, pos);
}
delete[] wins;
// Raise electric border windows above the input windows
// so they can still be triggered. TODO: Do both at once.
#ifdef KWIN_BUILD_SCREENEDGES
Workspace::self()->screenEdge()->ensureOnTop();
if (pos)
Workspace::self()->screenEdge()->ensureOnTop();
#endif
}