Description of the problem:
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 plasma-workspace!2462 for plasma-workspace and they should be merged together.
BUG: 462271 FIXED-IN: 5.27