From d24006e71593ae6db7d03b921d6b6dca011eb462 Mon Sep 17 00:00:00 2001 From: Zander Otavka Date: Mon, 3 Aug 2015 11:14:55 -0700 Subject: [PATCH] Improve logic around handling click and drag. --- examples/controlPanel.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/examples/controlPanel.js b/examples/controlPanel.js index ebad7d8d83..59d66fdaf9 100644 --- a/examples/controlPanel.js +++ b/examples/controlPanel.js @@ -172,26 +172,25 @@ function onFaceMuteToggled() { } onFaceMuteToggled(); -var isLeftClick = false, - isRightClick = false; +var mouseDown = {}; function onMouseDown(event) { - isLeftClick = event.isLeftButton; - isRightClick = event.isRightButton; -} - -function onMouseMove(event) { - isLeftClick = isRightClick = false; + if (event.isLeftButton) { + mouseDown.overlay = OverlayManager.findAtPoint({ x: event.x, y: event.y }); + } + if (event.isRightButton) { + mouseDown.pos = { x: event.x, y: event.y }; + } } function onMouseUp(event) { - if (isLeftClick && event.isLeftButton) { + if (event.isLeftButton) { var overlay = OverlayManager.findAtPoint({ x: event.x, y: event.y }); - if (overlay && overlay.onClick) { + if (overlay && overlay === mouseDown.overlay && overlay.onClick) { overlay.onClick(event); } } - if (isRightClick && event.isRightButton) { + if (event.isRightButton && Vec3.distance(mouseDown.pos, { x: event.x, y: event.y }) < 5) { panel.setProperties({ visible: !panel.visible, offsetRotation: { @@ -200,7 +199,8 @@ function onMouseUp(event) { } }); } - isLeftClick = isRightClick = false; + + mouseDown = {}; } function onScriptEnd(event) { @@ -208,7 +208,6 @@ function onScriptEnd(event) { } Controller.mousePressEvent.connect(onMouseDown); -Controller.mouseMoveEvent.connect(onMouseMove); Controller.mouseReleaseEvent.connect(onMouseUp); AudioDevice.muteToggled.connect(onMicMuteToggled); FaceTracker.muteToggled.connect(onFaceMuteToggled);