Bug 462271

Summary: Sometimes the category being hovered is not selected after the cursor stops moving
Product: [Plasma] plasmashell Reporter: Derek Christ <christ.derek>
Component: Application Launcher (Kickoff)Assignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: minor CC: bugseforuns, ivan.planinar, mikel5764, nate, noahadvs
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 6.0
Sentry Crash Report:
Attachments: Category not selected

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