Bug 462271 - Sometimes the category being hovered is not selected after the cursor stops moving
Summary: Sometimes the category being hovered is not selected after the cursor stops m...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Application Launcher (Kickoff) (show other bugs)
Version: master
Platform: Other Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 463975 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-11-26 15:04 UTC by Derek Christ
Modified: 2023-06-15 00:35 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0
Sentry Crash Report:


Attachments
Category not selected (120.89 KB, video/x-matroska)
2022-11-26 15:04 UTC, Derek Christ
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Derek Christ 2022-11-26 15:04:10 UTC
Created attachment 154047 [details]
Category not selected

SUMMARY
Sometimes, the category the mouse is currently hovering over is not selected, even after the short timeout period of the triangular mouse filter. This mostly happens when moving the mouse diagonally to the upper left direction.

This bug is caused by the triangular mouse filter that wrongfully filters a hover event and consequently does not re-select the category after the timeout period as the conditions for the filtering were actually not given.

STEPS TO REPRODUCE
1. Open kickoff
2. Move mouse diagonally to the upper left over a category

OBSERVED RESULT
Category is not selected, even after the timeout

EXPECTED RESULT
Category should be selected. Also, there should not be a timeout, as the conditions for the triangular filtering are not matched.

SOFTWARE/OS VERSIONS
Operating System: Manjaro Linux
KDE Plasma Version: 5.26.3
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.7
Kernel Version: 6.0.8-1-MANJARO (64-bit)

ADDITIONAL INFORMATION
This is the continuation of a very similar but slightly different bug 438950. More information of why this bug happens can be found in https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2100
Comment 1 Nate Graham 2023-01-09 22:22:21 UTC
*** Bug 463975 has been marked as a duplicate of this bug. ***
Comment 2 ivan.planinar 2023-01-12 12:03:17 UTC
Have to share what I have noticed in another desktop environment, xfce.

I have noticed xFCE launcher uses nice tactics with hovering. It adds slight fade-in before showing the results. It's very brief, but kind of enough for the system to do its thing while animation lasts.

Now, I'm not certain if KDE launcher has problems with showing (animation) or there's a bug related to registering the category itself. But maybe adding a small delay in form of a fade-in (it's very brief and not annoying), could help soothe this transition better.
Comment 3 Nate Graham 2023-06-15 00:35:03 UTC
Git commit 5368861d8752adffd69f30f3f589f43654a73cf2 by Nate Graham, on behalf of Derek Christ.
Committed on 15/06/2023 at 00:34.
Pushed by ngraham into branch 'master'.

Improve responsiveness of kickoff sidebar view and fix bug 462271

Description of the problem:
Sometimes a `HoverEnter` is sent without `HoverMove`, so the hovered element is not selected in `onPositionChanged`. Instead, we should use `onEntered` again and ignore `HoverEnter` events during the time when scrolling or navigating with the keyboard. Previously, this approach did not work because the `hoverEnabled` property caused `HoverEnter` to be resent after the timers expired, which is wrong for the keyboard navigation.

When the cursor is currently contained in the kickoff menu and the user starts typing, the cursor will select the search item it is currently hovering over. This is a consequence of using `onEntered` instead of `onPositionChanged`. The question is if this is undesired behavior and should be considered as a bug. If this is the case, any typing action should prevent the `currentIndex` to change.

This is a list of bugs I checked against to not introduce any regressions:
 - Triangle menu idle-hover reset doesn't work in kickoff (BUG 438950)
 - Mouse hover selection in search result persists across kickoff openings (BUG 454349)
 - Item not immediately select-able if cursor hovered over the item before opening Kickoff (BUG 456993)
 - Unmoving cursor continually reselects the menu item it's hovering over (BUG 455674)

Additionally, I ensured that the following things do not happen:
 - When scrolling and the cursor is contained in the category list, the selected categories should not be selected during scrolling.
 - When the menu is currently closed and opened with the meta key and the cursor is now hovering a category, do not select it and also do not select it when the cursor is moved in direction of the contentArea (so the user can directly select the favorites).

I have no touchscreen, so it would be good if someone that has one could test this patch.

This merge request depends on merge request https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2462 for plasma-workspace and they should be merged together.
FIXED-IN: 5.27

M  +12   -7    applets/kickoff/package/contents/ui/AbstractKickoffItemDelegate.qml
M  +13   -0    applets/kickoff/package/contents/ui/KickoffGridView.qml
M  +16   -0    applets/kickoff/package/contents/ui/KickoffListView.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/5368861d8752adffd69f30f3f589f43654a73cf2