mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 02:36:54 +02:00
Prevent Go To and Avatar windows to move Radar Mode's camera when touched or interacted with
This commit is contained in:
parent
47437c9564
commit
0d6bfada40
5 changed files with 86 additions and 11 deletions
|
@ -14,9 +14,10 @@
|
||||||
var DEFAULT_SCRIPTS_COMBINED = [
|
var DEFAULT_SCRIPTS_COMBINED = [
|
||||||
"system/progress.js",
|
"system/progress.js",
|
||||||
"system/+android/touchscreenvirtualpad.js",
|
"system/+android/touchscreenvirtualpad.js",
|
||||||
|
"system/+android/audio.js",
|
||||||
|
"system/+android/androidCombined.js"/*,
|
||||||
"system/+android/bottombar.js",
|
"system/+android/bottombar.js",
|
||||||
"system/+android/audio.js" ,
|
"system/+android/modes.js",
|
||||||
"system/+android/modes.js"/*,
|
|
||||||
"system/away.js",
|
"system/away.js",
|
||||||
"system/controllers/controllerDisplayManager.js",
|
"system/controllers/controllerDisplayManager.js",
|
||||||
"system/controllers/handControllerGrabAndroid.js",
|
"system/controllers/handControllerGrabAndroid.js",
|
||||||
|
|
24
scripts/system/+android/androidCombined.js
Normal file
24
scripts/system/+android/androidCombined.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
"use strict";
|
||||||
|
//
|
||||||
|
// androidCombined.js
|
||||||
|
// scripts/system/
|
||||||
|
//
|
||||||
|
// Created by Gabriel Calero & Cristian Duarte on Mar 20, 2018
|
||||||
|
// Copyright 2018 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
|
var modesInterface = Script.require('./modes.js');
|
||||||
|
var bottombarInterface = Script.require('./bottombar.js');
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
modesInterface.isRadarModeValidTouch = bottombarInterface.isRadarModeValidTouch;// set new function
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
|
|
||||||
|
}()); // END LOCAL_SCOPE
|
|
@ -35,6 +35,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See
|
||||||
break;
|
break;
|
||||||
case 'hide':
|
case 'hide':
|
||||||
Controller.setVPadHidden(false);
|
Controller.setVPadHidden(false);
|
||||||
|
module.exports.hide();
|
||||||
module.exports.onHidden();
|
module.exports.onHidden();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -21,7 +21,9 @@ var loginBtn;
|
||||||
var gotoScript = Script.require('./goto.js');
|
var gotoScript = Script.require('./goto.js');
|
||||||
var avatarSelection = Script.require('./avatarSelection.js');
|
var avatarSelection = Script.require('./avatarSelection.js');
|
||||||
|
|
||||||
var logEnabled = false;
|
var bottombarInterface = [];
|
||||||
|
|
||||||
|
var logEnabled = true;
|
||||||
|
|
||||||
function printd(str) {
|
function printd(str) {
|
||||||
if (logEnabled) {
|
if (logEnabled) {
|
||||||
|
@ -262,6 +264,40 @@ Script.scriptEnding.connect(function () {
|
||||||
GlobalServices.disconnected.disconnect(handleLogout);
|
GlobalServices.disconnected.disconnect(handleLogout);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function isRadarModeValidTouch(coords) {
|
||||||
|
var qmlFragments = [bottombar, bottomHudOptionsBar.qmlFragment];
|
||||||
|
var windows = [gotoScript, avatarSelection];
|
||||||
|
for (var i=0; i < qmlFragments.length; i++) {
|
||||||
|
var aQmlFrag = qmlFragments[i];
|
||||||
|
if (aQmlFrag != null && aQmlFrag.isVisible() &&
|
||||||
|
coords.x >= aQmlFrag.position.x && coords.x <= aQmlFrag.position.x + aQmlFrag.size.x &&
|
||||||
|
coords.y >= aQmlFrag.position.y && coords.y <= aQmlFrag.position.y + aQmlFrag.size.y
|
||||||
|
) {
|
||||||
|
printd("isRadarModeValidTouch- false because of qmlFragments!? idx " + i);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i=0; i < windows.length; i++) {
|
||||||
|
var aWin = windows[i];
|
||||||
|
if (aWin != null && aWin.position() != null && aWin.isVisible() &&
|
||||||
|
coords.x >= aWin.position().x && coords.x <= aWin.position().x + aWin.width() &&
|
||||||
|
coords.y >= aWin.position().y && coords.y <= aWin.position().y + aWin.height()
|
||||||
|
) {
|
||||||
|
printd("isRadarModeValidTouch- false because of windows!? idx " + i);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
printd("isRadarModeValidTouch- discarded of window idx " + i + " visible= " + aWin.isVisible());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printd("isRadarModeValidTouch- true by default ");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bottombarInterface.isRadarModeValidTouch = isRadarModeValidTouch;
|
||||||
|
|
||||||
|
module.exports = bottombarInterface;
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
}()); // END LOCAL_SCOPE
|
}()); // END LOCAL_SCOPE
|
||||||
|
|
|
@ -23,6 +23,8 @@ var logEnabled = true;
|
||||||
var radar = Script.require('./radar.js');
|
var radar = Script.require('./radar.js');
|
||||||
var uniqueColor = Script.require('./uniqueColor.js');
|
var uniqueColor = Script.require('./uniqueColor.js');
|
||||||
|
|
||||||
|
var modesInterface = {};
|
||||||
|
|
||||||
function printd(str) {
|
function printd(str) {
|
||||||
if (logEnabled) {
|
if (logEnabled) {
|
||||||
print("[modes.js] " + str);
|
print("[modes.js] " + str);
|
||||||
|
@ -184,33 +186,44 @@ function onButtonClicked(clickedButton, whatToDo, hideAllAfter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function isRadarModeValidTouch(coords) {
|
function isRadarModeValidTouch(coords) {
|
||||||
|
if (!modesInterface.isRadarModeValidTouch(coords)) {
|
||||||
|
printd("isRadarModeValidTouch- false because of modesInterface");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
printd("isRadarModeValidTouch- modesInterface is true, evaluating modesbar qmls..");
|
||||||
|
|
||||||
var qmlFragments = [modesbar.qmlFragment];
|
var qmlFragments = [modesbar.qmlFragment];
|
||||||
var windows = [];
|
var windows = [];
|
||||||
for (var i=0; i < qmlFragments.length; i++) {
|
for (var i=0; i < qmlFragments.length; i++) {
|
||||||
var aQmlFrag = qmlFragments[i];
|
var aQmlFrag = qmlFragments[i];
|
||||||
if (aQmlFrag != null && aQmlFrag.isVisible() &&
|
if (aQmlFrag != null && aQmlFrag.isVisible() &&
|
||||||
coords.x >= aQmlFrag.position.x * 3 && coords.x <= aQmlFrag.position.x * 3 + aQmlFrag.size.x * 3 &&
|
coords.x >= aQmlFrag.position.x && coords.x <= aQmlFrag.position.x + aQmlFrag.size.x &&
|
||||||
coords.y >= aQmlFrag.position.y * 3 && coords.y <= aQmlFrag.position.y * 3 + aQmlFrag.size.y * 3
|
coords.y >= aQmlFrag.position.y && coords.y <= aQmlFrag.position.y + aQmlFrag.size.y
|
||||||
) {
|
) {
|
||||||
printd("godViewModeTouchValid- false because of qmlFragments!? idx " + i);
|
printd("isRadarModeValidTouch- false because of qmlFragments!? idx " + i);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i=0; i < windows.length; i++) {
|
for (var i=0; i < windows.length; i++) {
|
||||||
var aWin = windows[i];
|
var aWin = windows[i];
|
||||||
if (aWin != null && aWin.position() != null &&
|
if (aWin != null && aWin.position() != null && aWin.isVisible() &&
|
||||||
coords.x >= aWin.position().x * 3 && coords.x <= aWin.position().x * 3 + aWin.width() * 3 &&
|
coords.x >= aWin.position().x && coords.x <= aWin.position().x + aWin.width() &&
|
||||||
coords.y >= aWin.position().y * 3 && coords.y <= aWin.position().y * 3 + aWin.height() * 3
|
coords.y >= aWin.position().y && coords.y <= aWin.position().y + aWin.height()
|
||||||
) {
|
) {
|
||||||
printd("godViewModeTouchValid- false because of windows!?");
|
printd("isRadarModeValidTouch- false because of windows!? idx " + i);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printd("godViewModeTouchValid- true by default ");
|
printd("isRadarModeValidTouch- true by default ");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// default
|
||||||
|
modesInterface.isRadarModeValidTouch = function(coords) {return true;};
|
||||||
|
|
||||||
|
module.exports = modesInterface;
|
||||||
|
|
||||||
Script.scriptEnding.connect(function () {
|
Script.scriptEnding.connect(function () {
|
||||||
shutdown();
|
shutdown();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue