Warning, /plasma/latte-dock/declarativeimports/components/ScrollArea.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003 SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005
0006 import QtQuick 2.1
0007
0008 MouseArea{
0009 id: __scrollArea
0010
0011 property bool wheelIsBlocked: false
0012 property bool delayIsEnabled: true
0013 property int delay: 75
0014
0015 signal scrolledUp(QtObject wheel);
0016 signal scrolledDown(QtObject wheel);
0017
0018 onWheel: {
0019 if (delayIsEnabled && wheelIsBlocked){
0020 return;
0021 } else {
0022 wheelIsBlocked = true;
0023 __scrollDelayer.start();
0024 }
0025
0026 var angle = wheel.angleDelta.y / 8;
0027
0028 if (angle > 12) {
0029 //positive direction
0030 __scrollArea.scrolledUp(wheel);
0031 } else if (angle < -12) {
0032 //negative direction
0033 __scrollArea.scrolledDown(wheel);
0034 }
0035 }
0036
0037 //! A timer is needed in order to handle also touchpads that probably
0038 //! send too many signals very fast. This way the signals per sec are limited.
0039 //! The user needs to have a steady normal scroll in order to not
0040 //! notice a annoying delay
0041 Timer{
0042 id: __scrollDelayer
0043 interval: __scrollArea.delay
0044 onTriggered: __scrollArea.wheelIsBlocked = false;
0045 }
0046 }