From e436c355a14d773e963d31eddd54632b0fc7299b Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Tue, 26 Apr 2016 11:23:29 -0700 Subject: [PATCH] get viewport dimensions from controller --- scripts/default/libraries/toolBars.js | 35 ++++++--------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/scripts/default/libraries/toolBars.js b/scripts/default/libraries/toolBars.js index 6e54c0276c..3b712e2ea0 100644 --- a/scripts/default/libraries/toolBars.js +++ b/scripts/default/libraries/toolBars.js @@ -355,36 +355,20 @@ ToolBar = function(x, y, direction, optionalPersistenceKey, optionalInitialPosit }); } }; - - function clamp(value, min, max) { - return Math.min(Math.max(value, min), max); - } - - var recommendedRect = Controller.getRecommendedOverlayRect(); - var recommendedDimmensions = { x: recommendedRect.width, y: recommendedRect.height }; - that.windowDimensions = recommendedDimmensions; // Controller.getViewportDimensions(); - that.origin = { x: recommendedRect.x, y: recommendedRect.y }; + that.windowDimensions = Controller.getViewportDimensions(); // Maybe fixme: Keeping the same percent of the window size isn't always the right thing. // For example, maybe we want "keep the same percentage to whatever two edges are closest to the edge of screen". // If we change that, the places to do so are onResizeViewport, save (maybe), and the initial move based on Settings, below. that.onResizeViewport = function (newSize) { // Can be overridden or extended by clients. - var recommendedRect = Controller.getRecommendedOverlayRect(); - var recommendedDimmensions = { x: recommendedRect.width, y: recommendedRect.height }; - var originRelativeX = (that.x - that.origin.x); - var originRelativeY = (that.y - that.origin.y); - var fractionX = clamp(originRelativeX / that.windowDimensions.x, 0, 1); - var fractionY = clamp(originRelativeY / that.windowDimensions.y, 0, 1); - that.windowDimensions = newSize || recommendedDimmensions; - that.origin = { x: recommendedRect.x, y: recommendedRect.y }; - var newX = (fractionX * that.windowDimensions.x) + recommendedRect.x; - var newY = (fractionY * that.windowDimensions.y) + recommendedRect.y; - that.move(newX, newY); + var fractionX = that.x / that.windowDimensions.x; + var fractionY = that.y / that.windowDimensions.y; + that.windowDimensions = newSize || Controller.getViewportDimensions(); + that.move(fractionX * that.windowDimensions.x, fractionY * that.windowDimensions.y); }; if (optionalPersistenceKey) { this.fractionKey = optionalPersistenceKey + '.fraction'; this.save = function () { - var recommendedRect = Controller.getRecommendedOverlayRect(); - var screenSize = { x: recommendedRect.width, y: recommendedRect.height }; + var screenSize = Controller.getViewportDimensions(); if (screenSize.x > 0 && screenSize.y > 0) { // Guard against invalid screen size that can occur at shut-down. var fraction = {x: that.x / screenSize.x, y: that.y / screenSize.y}; @@ -427,9 +411,7 @@ ToolBar = function(x, y, direction, optionalPersistenceKey, optionalInitialPosit that.move(that.dragOffsetX + event.x, that.dragOffsetY + event.y); }; that.checkResize = function () { // Can be overriden or extended, but usually not. See onResizeViewport. - var recommendedRect = Controller.getRecommendedOverlayRect(); - var currentWindowSize = { x: recommendedRect.width, y: recommendedRect.height }; - + var currentWindowSize = Controller.getViewportDimensions(); if ((currentWindowSize.x !== that.windowDimensions.x) || (currentWindowSize.y !== that.windowDimensions.y)) { that.onResizeViewport(currentWindowSize); } @@ -452,8 +434,7 @@ ToolBar = function(x, y, direction, optionalPersistenceKey, optionalInitialPosit } if (this.fractionKey || optionalInitialPositionFunction) { var savedFraction = JSON.parse(Settings.getValue(this.fractionKey) || '0'); // getValue can answer empty string - var recommendedRect = Controller.getRecommendedOverlayRect(); - var screenSize = { x: recommendedRect.width, y: recommendedRect.height }; + var screenSize = Controller.getViewportDimensions(); if (savedFraction) { // If we have saved data, keep the toolbar at the same proportion of the screen width/height. that.move(savedFraction.x * screenSize.x, savedFraction.y * screenSize.y);