do not setActive clients which don't take focus on ShadeHover - by this resort re-shade restacking code

BUG: 242217
FIXED-IN: 4.9
REVIEW: 104622
This commit is contained in:
Thomas Lübking 2012-04-16 19:13:02 +02:00
parent 5c71a75e8e
commit 651d4e4fbf

View file

@ -1099,21 +1099,20 @@ void Client::setShade(ShadeMode mode)
XSelectInput(display(), wrapper, ClientWinMask | SubstructureNotifyMask);
plainResize(s);
shade_geometry_change = false;
if (isActive()) {
if (was_shade_mode == ShadeHover) {
if (shade_below && workspace()->stackingOrder().indexOf(shade_below) > -1)
if (was_shade_mode == ShadeHover) {
if (shade_below && workspace()->stackingOrder().indexOf(shade_below) > -1)
workspace()->restack(this, shade_below);
if (isActive())
workspace()->activateNextClient(this);
}
else
workspace()->focusToNull();
} else if (isActive()) {
workspace()->focusToNull();
}
} else {
shade_geometry_change = true;
QSize s(sizeForClientSize(clientSize()));
shade_geometry_change = false;
plainResize(s);
if (shade_mode == ShadeHover || shade_mode == ShadeActivated)
if ((shade_mode == ShadeHover || shade_mode == ShadeActivated) && rules()->checkAcceptFocus(input))
setActive(true);
if (shade_mode == ShadeHover) {
ClientList order = workspace()->stackingOrder();