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 }