Summary: | "Switch to Windows to the Right" with multiple screens goes to back window | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | cdancette <corentin.dancette> |
Component: | core | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate |
Priority: | NOR | Flags: | vlad.zahorodnii:
ReviewRequest+
|
Version: | 5.14.5 | ||
Target Milestone: | --- | ||
Platform: | Debian stable | ||
OS: | Linux | ||
URL: | https://phabricator.kde.org/D23521 | ||
Latest Commit: | https://commits.kde.org/kwin/9102e41e71ce81ea72d6a2575c1b8cedd37087fb | Version Fixed In: | 5.17.0 |
Description
cdancette
2019-08-27 15:28:57 UTC
This problem happens because kwin traverses the stacking order from bottom to top and assigns a score to each client. A client with the best score will be activated next. The score function works purely in terms of geometry. So, if there are several maximized/fullscreen clients, their geometry will be identical and therefore kwin will pick only the bottom-most client. Git commit 9102e41e71ce81ea72d6a2575c1b8cedd37087fb by Vlad Zagorodniy. Committed on 31/08/2019 at 10:47. Pushed by vladz into branch 'master'. Traverse the stacking order backwards when switching between windows Summary: In order to pick the next client to activate we traverse the stacking order from bottom to top and assign to each client a score. The client with the best score will be activated next. Function that assigns score bases its decisions purely on geometry. This may backfire if there are couple maximized or fullscreen clients on the screen - we'll activate the bottom-most client. This change toggles direction we traverse the stacking order. If there are several clients with an identical score, then prefer the top-most client, the one that the user most likely sees at the moment. FIXED-IN: 5.17.0 Test Plan: New tests pass. Reviewers: #kwin Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D23521 M +1 -0 autotests/integration/CMakeLists.txt A +585 -0 autotests/integration/activation_test.cpp [License: GPL (v2)] M +1 -1 useractions.cpp https://commits.kde.org/kwin/9102e41e71ce81ea72d6a2575c1b8cedd37087fb |