From 0b6f52f508c91a06ae9adde69384558949e43bb9 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 8 Mar 2016 10:27:34 -0800 Subject: [PATCH] use local messaging to disable mouse-grab when edit.js is active --- examples/edit.js | 3 ++- examples/grab.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/examples/edit.js b/examples/edit.js index bc0665213e..20ff431ead 100644 --- a/examples/edit.js +++ b/examples/edit.js @@ -345,6 +345,7 @@ var toolBar = (function() { if (active && !Entities.canAdjustLocks()) { Window.alert(INSUFFICIENT_PERMISSIONS_ERROR_MSG); } else { + Messages.sendMessage("edit-events", JSON.stringify({enabled: active})); isActive = active; if (!isActive) { entityListTool.setVisible(false); @@ -1949,4 +1950,4 @@ entityListTool.webView.eventBridge.webEventReceived.connect(function(data) { } } } -}); \ No newline at end of file +}); diff --git a/examples/grab.js b/examples/grab.js index c79259ed57..e1b3cb87d3 100644 --- a/examples/grab.js +++ b/examples/grab.js @@ -49,6 +49,8 @@ var IDENTITY_QUAT = { }; var ACTION_TTL = 10; // seconds +var enabled = true; + function getTag() { return "grab-" + MyAvatar.sessionUUID; } @@ -306,6 +308,10 @@ Grabber.prototype.computeNewGrabPlane = function() { } Grabber.prototype.pressEvent = function(event) { + if (!enabled) { + return; + } + if (event.isLeftButton!==true ||event.isRightButton===true || event.isMiddleButton===true) { return; } @@ -559,8 +565,26 @@ function keyReleaseEvent(event) { grabber.keyReleaseEvent(event); } +function editEvent(channel, message, sender) { + if (channel != "edit-events") { + return; + } + if (sender != MyAvatar.sessionUUID) { + return; + } + try { + data = JSON.parse(message); + if ("enabled" in data) { + enabled = !data["enabled"]; + } + } catch(e) { + } +} + Controller.mousePressEvent.connect(pressEvent); Controller.mouseMoveEvent.connect(moveEvent); Controller.mouseReleaseEvent.connect(releaseEvent); Controller.keyPressEvent.connect(keyPressEvent); Controller.keyReleaseEvent.connect(keyReleaseEvent); +Messages.subscribe("edit-events"); +Messages.messageReceived.connect(editEvent);