Do not autoraise a window unless the mouse has been moved.
Fixes unintended autoraises when switching workspaces. BUG: 306281 FIXED-IN: 4.9.2
This commit is contained in:
parent
42ad299d88
commit
371a29096b
1 changed files with 2 additions and 1 deletions
|
@ -882,8 +882,10 @@ void Client::enterNotifyEvent(XCrossingEvent* e)
|
||||||
if (options->focusPolicy() == Options::ClickToFocus || workspace()->windowMenuShown())
|
if (options->focusPolicy() == Options::ClickToFocus || workspace()->windowMenuShown())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
QPoint currentPos(e->x_root, e->y_root);
|
||||||
if (options->isAutoRaise() && !isDesktop() &&
|
if (options->isAutoRaise() && !isDesktop() &&
|
||||||
!isDock() && workspace()->focusChangeEnabled() &&
|
!isDock() && workspace()->focusChangeEnabled() &&
|
||||||
|
currentPos != workspace()->focusMousePosition() &&
|
||||||
workspace()->topClientOnDesktop(workspace()->currentDesktop(),
|
workspace()->topClientOnDesktop(workspace()->currentDesktop(),
|
||||||
options->isSeparateScreenFocus() ? screen() : -1) != this) {
|
options->isSeparateScreenFocus() ? screen() : -1) != this) {
|
||||||
delete autoRaiseTimer;
|
delete autoRaiseTimer;
|
||||||
|
@ -893,7 +895,6 @@ void Client::enterNotifyEvent(XCrossingEvent* e)
|
||||||
autoRaiseTimer->start(options->autoRaiseInterval());
|
autoRaiseTimer->start(options->autoRaiseInterval());
|
||||||
}
|
}
|
||||||
|
|
||||||
QPoint currentPos(e->x_root, e->y_root);
|
|
||||||
if (isDesktop() || isDock())
|
if (isDesktop() || isDock())
|
||||||
return;
|
return;
|
||||||
// for FocusFollowsMouse, change focus only if the mouse has actually been moved, not if the focus
|
// for FocusFollowsMouse, change focus only if the mouse has actually been moved, not if the focus
|
||||||
|
|
Loading…
Reference in a new issue