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:
parent
5c71a75e8e
commit
651d4e4fbf
1 changed files with 6 additions and 7 deletions
13
client.cpp
13
client.cpp
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue