1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-29 07:52:50 -05:00

widgets: stop inertia with mouse wheel completely

This commit is contained in:
bbedward
2025-11-11 12:35:13 -05:00
parent 95589982a5
commit b753c8840b
3 changed files with 15 additions and 3 deletions

View File

@@ -29,6 +29,7 @@ Flickable {
property real lastWheelTime: 0
property real momentum: 0
property var velocitySamples: []
property bool sessionUsedMouseWheel: false
function startMomentum() {
flickable.isMomentumActive = true
@@ -49,10 +50,12 @@ Flickable {
const isMouseWheel = Math.abs(deltaY) >= 120 && (Math.abs(deltaY) % 120) === 0
if (isMouseWheel) {
sessionUsedMouseWheel = true
momentumTimer.stop()
flickable.isMomentumActive = false
velocitySamples = []
momentum = 0
flickable.momentumVelocity = 0
const lines = Math.floor(Math.abs(deltaY) / 120)
const scrollAmount = (deltaY > 0 ? -lines : lines) * flickable.mouseWheelSpeed
@@ -65,6 +68,7 @@ Flickable {
flickable.contentY = newY
} else {
sessionUsedMouseWheel = false
momentumTimer.stop()
flickable.isMomentumActive = false
@@ -111,7 +115,7 @@ Flickable {
onActiveChanged: {
if (!active) {
if (Math.abs(flickable.momentumVelocity) >= flickable.minMomentumVelocity) {
if (!sessionUsedMouseWheel && Math.abs(flickable.momentumVelocity) >= flickable.minMomentumVelocity) {
startMomentum()
} else {
velocitySamples = []