From 46a9521939c41e2cff636268dc75af895bf2f23f Mon Sep 17 00:00:00 2001 From: David Back Date: Fri, 13 Jul 2018 17:40:24 -0700 Subject: [PATCH 1/3] fix selecting an edit handle causing selected entity change --- scripts/system/edit.js | 22 +++++++++++-------- .../system/libraries/entitySelectionTool.js | 7 ++++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 73088560d9..20a84bfa62 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -1075,15 +1075,19 @@ function mouseReleaseEvent(event) { } } -function wasTabletClicked(event) { +function wasTabletOrEditHandleClicked(event) { var rayPick = Camera.computePickRay(event.x, event.y); - var tabletIDs = getMainTabletIDs(); - if (tabletIDs.length === 0) { - return false; - } else { - var result = Overlays.findRayIntersection(rayPick, true, getMainTabletIDs()); - return result.intersects; + var result = Overlays.findRayIntersection(rayPick, true); + if (result.intersects) { + var overlayID = result.overlayID; + var tabletIDs = getMainTabletIDs(); + if (tabletIDs.indexOf(overlayID) >= 0) { + return true; + } else if (selectionDisplay.isEditHandle(overlayID)) { + return true; + } } + return false; } function mouseClickEvent(event) { @@ -1091,8 +1095,8 @@ function mouseClickEvent(event) { var result, properties, tabletClicked; if (isActive && event.isLeftButton) { result = findClickedEntity(event); - tabletClicked = wasTabletClicked(event); - if (tabletClicked) { + tabletOrEditHandleClicked = wasTabletOrEditHandleClicked(event); + if (tabletOrEditHandleClicked) { return; } diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js index 4ff139ee75..215d19be18 100644 --- a/scripts/system/libraries/entitySelectionTool.js +++ b/scripts/system/libraries/entitySelectionTool.js @@ -658,6 +658,7 @@ SelectionDisplay = (function() { selectionBox, iconSelectionBox ]; + var maximumHandleInAllOverlays = handleCloner; overlayNames[handleTranslateXCone] = "handleTranslateXCone"; overlayNames[handleTranslateXCylinder] = "handleTranslateXCylinder"; @@ -781,6 +782,12 @@ SelectionDisplay = (function() { return Math.abs(position.x) <= box.dimensions.x / 2 && Math.abs(position.y) <= box.dimensions.y / 2 && Math.abs(position.z) <= box.dimensions.z / 2; } + + that.isEditHandle = function(overlayID) { + var overlayIndex = allOverlays.indexOf(overlayID); + var maxHandleIndex = allOverlays.indexOf(maximumHandleInAllOverlays); + return overlayIndex >= 0 && overlayIndex <= maxHandleIndex; + }; // FUNCTION: MOUSE PRESS EVENT that.mousePressEvent = function (event) { From ef4265de4bbcb70bbb5db1a1e5336b0b2143d55e Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 17 Jul 2018 16:16:43 -0700 Subject: [PATCH 2/3] Fix MS16802: In Purchases, there shouldn't be a glyph associated with the Open button --- .../resources/qml/hifi/commerce/purchases/PurchasedItem.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml index 13dc3cb37f..0935f27388 100644 --- a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml +++ b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml @@ -731,7 +731,7 @@ Item { } HiFiGlyphs { id: rezIcon; - text: (root.buttonGlyph)[itemTypesArray.indexOf(root.itemType)]; + text: root.isInstalled ? "" : (root.buttonGlyph)[itemTypesArray.indexOf(root.itemType)]; anchors.right: rezIconLabel.left; anchors.rightMargin: 2; anchors.verticalCenter: parent.verticalCenter; @@ -750,7 +750,7 @@ Item { text: root.isInstalled ? "OPEN" : (MyAvatar.skeletonModelURL === root.itemHref ? "CURRENT" : (root.buttonTextNormal)[itemTypesArray.indexOf(root.itemType)]); anchors.verticalCenter: parent.verticalCenter; width: rezIconLabelTextMetrics.width; - x: parent.width/2 - rezIconLabelTextMetrics.width/2 + rezIconTextMetrics.width/2; + x: parent.width/2 - rezIconLabelTextMetrics.width/2 + (rezIcon.text === "" ? 0 : rezIconTextMetrics.width/2); size: 15; font.capitalization: Font.AllUppercase; verticalAlignment: Text.AlignVCenter; From 919bfce7abbcbe8bbdff17e8cf42c1d5cc451fdc Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 18 Jul 2018 09:00:01 -0700 Subject: [PATCH 3/3] Simplify --- .../resources/qml/hifi/commerce/purchases/PurchasedItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml index 0935f27388..b2338d08de 100644 --- a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml +++ b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml @@ -750,7 +750,7 @@ Item { text: root.isInstalled ? "OPEN" : (MyAvatar.skeletonModelURL === root.itemHref ? "CURRENT" : (root.buttonTextNormal)[itemTypesArray.indexOf(root.itemType)]); anchors.verticalCenter: parent.verticalCenter; width: rezIconLabelTextMetrics.width; - x: parent.width/2 - rezIconLabelTextMetrics.width/2 + (rezIcon.text === "" ? 0 : rezIconTextMetrics.width/2); + x: parent.width/2 - rezIconLabelTextMetrics.width/2 + rezIconTextMetrics.width/2; size: 15; font.capitalization: Font.AllUppercase; verticalAlignment: Text.AlignVCenter;