From b418e43ef2250eb1bd5ddbc332c1fa28ba915be6 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Tue, 12 Feb 2019 09:25:57 -0800 Subject: [PATCH] ctrlaltdavid's minitablet fix --- scripts/system/html/js/miniTablet.js | 8 +++--- scripts/system/miniTablet.js | 38 +++++++++++++++------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/scripts/system/html/js/miniTablet.js b/scripts/system/html/js/miniTablet.js index 6bc75161b3..c48201cef5 100644 --- a/scripts/system/html/js/miniTablet.js +++ b/scripts/system/html/js/miniTablet.js @@ -61,11 +61,6 @@ } switch (message.type) { - case READY_MESSAGE: - EventBridge.emitWebEvent(JSON.stringify({ - type: READY_MESSAGE - })); - break; case MUTE_MESSAGE: muteImage.src = message.icon; break; @@ -119,6 +114,9 @@ function connectEventBridge() { EventBridge.scriptEventReceived.connect(onScriptEventReceived); + EventBridge.emitWebEvent(JSON.stringify({ + type: READY_MESSAGE + })); } function disconnectEventBridge() { diff --git a/scripts/system/miniTablet.js b/scripts/system/miniTablet.js index e99c2631d9..449921514c 100644 --- a/scripts/system/miniTablet.js +++ b/scripts/system/miniTablet.js @@ -114,7 +114,7 @@ uiHand = LEFT_HAND, miniUIOverlay = null, MINI_UI_HTML = Script.resolvePath("./html/miniTablet.html"), - MINI_UI_DIMENSIONS = { x: 0.059, y: 0.0865, z: 0.01 }, + MINI_UI_DIMENSIONS = { x: 0.059, y: 0.0865, z: 0.001 }, MINI_UI_WIDTH_PIXELS = 150, METERS_TO_INCHES = 39.3701, MINI_UI_DPI = MINI_UI_WIDTH_PIXELS / (MINI_UI_DIMENSIONS.x * METERS_TO_INCHES), @@ -124,7 +124,6 @@ miniUIOverlayEnabled = false, MINI_UI_OVERLAY_ENABLED_DELAY = 500, miniOverlayObject = null, - isReady = false, // Button icons. MUTE_ON_ICON = Script.resourcesPath() + "icons/tablet-icons/mic-mute-a.svg", @@ -172,8 +171,8 @@ function updateMutedStatus() { - var isMuted = Audio.muted; if (miniOverlayObject) { + var isMuted = Audio.muted; miniOverlayObject.emitScriptEvent(JSON.stringify({ type: MUTE_MESSAGE, on: isMuted, @@ -204,7 +203,6 @@ switch (message.type) { case READY_MESSAGE: // Send initial button statuses. - isReady = true; updateMutedStatus(); setGotoIcon(); break; @@ -451,6 +449,19 @@ }); } + function checkEventBridge() { + // The miniUIOverlay overlay's overlay object is not available immediately the overlay is created so we have to + // provide a means to check for and connect it when it does become available. + if (miniOverlayObject) { + return; + } + + miniOverlayObject = Overlays.getOverlayObject(miniUIOverlay); + if (miniOverlayObject) { + miniOverlayObject.webEventReceived.connect(onWebEventReceived); + } + } + function create() { miniOverlay = Overlays.addOverlay("model", { url: MINI_MODEL, @@ -476,6 +487,8 @@ }); miniUIOverlayEnabled = false; // This and alpha = 0 hides overlay while its content is being created. + + checkEventBridge(); } function destroy() { @@ -505,6 +518,7 @@ updateRotation: updateRotation, release: release, hide: hide, + checkEventBridge: checkEventBridge, destroy: destroy }; @@ -981,19 +995,7 @@ } function updateState() { - if (!ui.isReady) { - if (!ui.miniOverlayObject) { - // Keep trying to connect the event bridge until we succeed - ui.miniOverlayObject = Overlays.getOverlayObject(ui.miniUIOverlay); - if (ui.miniOverlayObject) { - ui.miniOverlayObject.webEventReceived.connect(ui.onWebEventReceived); - } - } else { - ui.miniOverlayObject.emitScriptEvent(JSON.stringify({ - type: READY_MESSAGE - })); - } - } + ui.checkEventBridge(); if (STATE_MACHINE[STATE_STRINGS[miniState]].update) { STATE_MACHINE[STATE_STRINGS[miniState]].update(); @@ -1142,4 +1144,4 @@ setUp(); Script.scriptEnding.connect(tearDown); -}()); +}()); \ No newline at end of file