diff --git a/www.rus/js/plugins/VND_ONSControls.js b/www.rus/js/plugins/VND_ONSControls.js index 82bd3cc..1f13891 100644 --- a/www.rus/js/plugins/VND_ONSControls.js +++ b/www.rus/js/plugins/VND_ONSControls.js @@ -278,17 +278,14 @@ ONSControls.updateButtons = function() { console.log("ONSControls: Controls updated"); } //============================================================================= -// * Check if element in safe area +// * Clamp to safe area //============================================================================= -ONSControls.isSafeArea = function(element, position) { - if (position.x - element.width/2 <= ConfigManager.ONSConfig.safeArea || - position.x + element.width/2 >= this._controlsCanvas.screen.width - ConfigManager.ONSConfig.safeArea || - position.y - element.width/2 <= ConfigManager.ONSConfig.safeArea || - position.y + element.width/2 >= this._controlsCanvas.screen.height - ConfigManager.ONSConfig.safeArea) { - return false; - } else { - return true; - } +ONSControls.clampSafeArea = function(position, element) { + let safeAreaX = ConfigManager.ONSConfig.safeArea + element.width / 2; + let safeAreaY = ConfigManager.ONSConfig.safeArea + element.height / 2; + position.x = position.x.clamp(safeAreaX, this._controlsCanvas.screen.width - safeAreaX); + position.y = position.y.clamp(safeAreaY, this._controlsCanvas.screen.height - safeAreaY); + return position; } //============================================================================= // * Setup controls touch events @@ -382,10 +379,8 @@ ONSControls.setupDragNDrop = function(element) { } var onMove = function(event) { if (element) { - if (ONSControls.isSafeArea(element, event.data.global)) { - element.parent.toLocal(event.data.global, null, element.position); - ConfigManager.ONSConfig.customPos = true; - } + element.parent.toLocal(ONSControls.clampSafeArea(event.data.global, element), null, element.position); + ConfigManager.ONSConfig.customPos = true; }; } var onEnd = function(event) {