This adds support for touchpad scrolling in various shell components, such as the lockscreen, homescreen and action drawer.
Currently TODO because it appears to be very buggy when there is a control underneath that also accepts touchpad input (ex. flickable). The touchpad scroll start appears to get called by Qt, but not the end event, so I am unable to "let go" of the flick. Not sure if it's a wayland issue.
This also appears to not work in the nested KWin session, not sure if it's because of libinput or something
Dragging delegates on the homescreen involves holding onto it until the context menu pops up, and then dragging.
We currently suppress swipe detection (physically swipe a few pixels before the swipe gets registered) when dragging a delegate so that dragging can start immediately. However, this doesn't make sense if a context menu gets involved, because it can be hard to "let go" to tap the context menu without accidentally triggering the drag action and closing the context menu.
This MR re-enables swipe detection if a context menu is involved with delegate dragging.
SwipeArea requires 10px to differentiate between taps and swipes. HomeScreenState uses a further 10px to differentiate between vertical and horizontal swipes. This MR combines the swipe detection together so that we only need 10px rather than 20px for gesture detection.
Having a global set margins and orientation (that were calculated from the panel containment) caused a lot of issues with the way bindings were evaluated across panels, and with high coupling.
Now use properties from within containments to determine shell margins instead, which removes the dependency on other containments for measurements. This allows us to get rid of TaskPanelControls as well!
Fixes: https://invent.kde.org/teams/plasma-mobile/issues/-/issues/198