Skip to content

apples/kicker: fix timer in triangular mouse filter.

Derek Christ requested to merge derek/plasma-workspace:work/kickoff_timer into master

The underlying mouse area for kickoff list delegates does not select items when the mouse enters the hovering area, but when the mouse changes its position. Therefore, to change the current selected item, the triangular mouse filter must replay both enter and move events when the triangular fitlering condition is broken.

Sometimes, it was possible that the filter only let trough an enter and no following move event, that results in the current hovered item not selected even when the mouse stops its movement completely.

The timeout timer that is used to select the hovered item after a time was not at fault, because it is only responsible to do so when the triangular filtering condition is currently upheld, which is not the case in the above mentioned example.

I think this special case of not sending the move event is made more likely by the jitterThreshold of the triangular polygon. When the triangular filtering condition is broken because the user moves the cursor to the left while hovering over an item, it could be that a HoverEnter event was sent but no further HoverMove event because the jitter threshold caused to intercept this immediate movement.

As it can be seen in the video, this patch already improves the situation. However, at the very end of the video it can be seen that we fail again to select the item the cursor is hovering. It might be that this is only the case when the cursor is at the very edge of such an item, but I'm not sure.

2022-09-10_22-19-12

(The red dot represents the left edge of the filter triangle, which was quite useful when debugging)

BUG: 438950 @davidedmundson

Merge request reports