From fd9539a9e47a3923c86b0e27a123f13e060ddca4 Mon Sep 17 00:00:00 2001 From: vladest Date: Sat, 2 Dec 2017 13:57:12 +0100 Subject: [PATCH] Using Flickable signals to remove hover state instead of timer. No more delays --- interface/resources/qml/hifi/tablet/Tablet.qml | 9 +-------- .../resources/qml/hifi/tablet/TabletButton.qml | 14 +++++++++++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/interface/resources/qml/hifi/tablet/Tablet.qml b/interface/resources/qml/hifi/tablet/Tablet.qml index 757c0e0a15..d36e216e87 100644 --- a/interface/resources/qml/hifi/tablet/Tablet.qml +++ b/interface/resources/qml/hifi/tablet/Tablet.qml @@ -13,9 +13,6 @@ Item { property int columnIndex: 1 // point to 'go to location' property int count: 0 - //timeout for press delay before swipe occurs - readonly property int pressDelayTime: HMD.active ? 150 : 100 - // used to look up a button by its uuid function findButtonIndex(uuid) { if (!uuid) { @@ -67,6 +64,7 @@ Item { } else { button.tabletRoot = parent.parent; } + button.flickable = swipeView.contentItem sortButtons(gridIndex); @@ -217,11 +215,6 @@ Item { top: parent.top bottom: pageIndicator.top } - Component.onCompleted: { - if (contentItem !== null) { - contentItem.pressDelay = tablet.pressDelayTime - } - } } PageIndicator { diff --git a/interface/resources/qml/hifi/tablet/TabletButton.qml b/interface/resources/qml/hifi/tablet/TabletButton.qml index 8fc31d1cd6..6ad0418e65 100644 --- a/interface/resources/qml/hifi/tablet/TabletButton.qml +++ b/interface/resources/qml/hifi/tablet/TabletButton.qml @@ -23,11 +23,22 @@ Item { property double sortOrder: 100 property int stableOrder: 0 property var tabletRoot; + property var flickable: null width: 129 height: 129 signal clicked() + Connections { + target: flickable + onMovingChanged: { + //when flick/move started, and hover is on, clean hove state + if (flickable.moving && tabletButton.state.indexOf("hover") !== -1) { + tabletButton.state = (tabletButton.isActive) ? "active state" : "base state"; + } + } + } + function changeProperty(key, value) { tabletButton[key] = value; } @@ -121,7 +132,7 @@ Item { anchors.fill: parent hoverEnabled: true enabled: true - preventStealing: true + preventStealing: false onClicked: { console.log("Tablet Button Clicked!"); if (tabletButton.inDebugMode) { @@ -136,6 +147,7 @@ Item { tabletInterface.playSound(TabletEnums.ButtonClick); } } + onEntered: { tabletButton.isEntered = true; tabletInterface.playSound(TabletEnums.ButtonHover);