Bug 476496 - Hovering over a window raises it in the task switcher's "recently used" order when hover-to-focus is enabled
Summary: Hovering over a window raises it in the task switcher's "recently used" order...
Status: REPORTED
Alias: None
Product: kwin
Classification: Plasma
Component: tabbox (show other bugs)
Version: 5.27.9
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 443237 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-11-03 05:11 UTC by Adam Fontenot
Modified: 2023-11-03 05:14 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Fontenot 2023-11-03 05:11:28 UTC
SUMMARY
This boils down to breaking user expectations. Users who set hover-to-focus will often hover over multiple windows when moving the cursor from one window to another, but even though the intermediate windows are (briefly) focused, the user does not thereby show any intent to use the windows. In hover-to-focus mode (as well as any other mode), intent to use a window is only signaled by some other keyboard / mouse input on the window surface or when the window is raised.

The result is a very annoying experience for hover-to-focus users who are switching back and forth between two windows with the task switcher (alt-tab). They will frequently end up switching to windows that they never intended to raise when the task switcher is activated.

One proposed workaround is to use the "stacking order" in reversed mode (with the normal shortcut set to reverse and vice versa), which works around this specific issue because stacking order waits for the window to be raised before it affects the task switcher behavior. The problem with this is that stacking order *is not* what's wanted here, because stacking order includes windows set to "keep above" (always on top). If you are working on two windows that are not (both) set to keep above, activating the task switcher will switch to the window at the top of the stack, i.e. the window set to keep above.

As far as I can see, other than adding a third sort order option to meet this need, the only possible way to get the behavior users of hover-to-focus expect is to change the "recently used" option so that hovering / focusing a window isn't enough for it to be considered "recently used". Focusing a window simply does not have those semantics when hover-to-focus is enabled. Changing this shouldn't affect any other use cases, because the only way to focus a window without hover-to-focus is to raise it.

STEPS TO REPRODUCE
1. Enable hover-to-focus. Make sure the task switcher is set to "recently used" sort order.
2. Open three windows (e.g. kwrite). Type in one, move the cursor to the third while passing over the second, and click and type into the third.
3. Activate the task switcher (e.g. alt-tab).

OBSERVED RESULT

The task switcher activates the second window.

EXPECTED RESULT

The task switcher activates the most recently used window, i.e. the first window.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.27.9
KDE Frameworks Version: 5.111.0
Qt Version: 5.15.11
Kernel Version: 6.5.9-arch2-1 (64-bit)
Graphics Platform: X11

ADDITIONAL INFORMATION

I was asked to recreate this bug for the current KWin version. The previous bug was https://bugs.kde.org/show_bug.cgi?id=443237
Comment 1 Adam Fontenot 2023-11-03 05:14:17 UTC
*** Bug 443237 has been marked as a duplicate of this bug. ***