From 4c3ee195de5535ff0e19a637b45539ffd199b992 Mon Sep 17 00:00:00 2001 From: Cristian Luis Duarte Date: Thu, 8 Mar 2018 19:58:15 -0300 Subject: [PATCH] Android - hide joystick when opening the Avatar window and disable it in cases is hidden (it was working with ui windows in front). --- .../input-plugins/TouchscreenVirtualPadDevice.cpp | 12 ++++++------ scripts/system/+android/avatarSelection.js | 8 +++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp index a5c6df0dba..809d553a8f 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp @@ -228,7 +228,7 @@ void TouchscreenVirtualPadDevice::touchBeginEvent(const QTouchEvent* event) { // touch begin here is a big begin -> begins both pads? maybe it does nothing debugPoints(event, " BEGIN ++++++++++++++++"); auto& virtualPadManager = VirtualPad::Manager::instance(); - if (!virtualPadManager.isEnabled()) { + if (!virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { return; } KeyboardMouseDevice::enableTouch(false); @@ -236,7 +236,7 @@ void TouchscreenVirtualPadDevice::touchBeginEvent(const QTouchEvent* event) { void TouchscreenVirtualPadDevice::touchEndEvent(const QTouchEvent* event) { auto& virtualPadManager = VirtualPad::Manager::instance(); - if (!virtualPadManager.isEnabled()) { + if (!virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { touchLeftEnd(); touchRightEnd(); return; @@ -252,7 +252,7 @@ void TouchscreenVirtualPadDevice::touchEndEvent(const QTouchEvent* event) { void TouchscreenVirtualPadDevice::touchUpdateEvent(const QTouchEvent* event) { auto& virtualPadManager = VirtualPad::Manager::instance(); - if (!virtualPadManager.isEnabled()) { + if (!virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { touchLeftEnd(); touchRightEnd(); return; @@ -309,7 +309,7 @@ bool TouchscreenVirtualPadDevice::touchLeftBeginPointIsValid(glm::vec2 touchPoin void TouchscreenVirtualPadDevice::touchLeftBegin(glm::vec2 touchPoint) { auto& virtualPadManager = VirtualPad::Manager::instance(); - if (virtualPadManager.isEnabled()) { + if (virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { if (_fixedPosition) { _firstTouchLeftPoint = _fixedCenterPosition; } else { @@ -333,7 +333,7 @@ void TouchscreenVirtualPadDevice::touchLeftEnd() { void TouchscreenVirtualPadDevice::touchRightBegin(glm::vec2 touchPoint) { auto& virtualPadManager = VirtualPad::Manager::instance(); - if (virtualPadManager.isEnabled()) { + if (virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { _firstTouchRightPoint = touchPoint; _validTouchRight = true; } @@ -353,7 +353,7 @@ void TouchscreenVirtualPadDevice::touchRightEnd() { void TouchscreenVirtualPadDevice::touchGestureEvent(const QGestureEvent* event) { auto& virtualPadManager = VirtualPad::Manager::instance(); - if (!virtualPadManager.isEnabled()) { + if (!virtualPadManager.isEnabled() && !virtualPadManager.isHidden()) { return; } if (QGesture* gesture = event->gesture(Qt::PinchGesture)) { diff --git a/scripts/system/+android/avatarSelection.js b/scripts/system/+android/avatarSelection.js index be58f61ac2..d87a57dfa9 100644 --- a/scripts/system/+android/avatarSelection.js +++ b/scripts/system/+android/avatarSelection.js @@ -34,6 +34,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See App.openUrl("https://metaverse.highfidelity.com/marketplace?category=avatars"); break; case 'hide': + Controller.setVPadHidden(false); module.exports.onHidden(); break; default: @@ -122,18 +123,21 @@ module.exports = { init(); }, show: function() { + Controller.setVPadHidden(true); if (window) { window.setVisible(true); isVisible = true; } }, hide: function() { + Controller.setVPadHidden(false); if (window) { window.setVisible(false); } isVisible = false; }, destroy: function() { + Controller.setVPadHidden(false); if (window) { window.fromQml.disconnect(fromQml); window.close(); @@ -155,5 +159,7 @@ module.exports = { refreshSelectedAvatar: function(currentAvatarURL) { refreshSelected(currentAvatarURL); }, - onHidden: function() { } + onHidden: function() { + Controller.setVPadHidden(false); + } };