diff --git a/desktop/sources/links/main.css b/desktop/sources/links/main.css index d0aabc9..d9379a4 100644 --- a/desktop/sources/links/main.css +++ b/desktop/sources/links/main.css @@ -2,7 +2,7 @@ body { padding: 0px; font-family: 'input_mono_regular'; -webkit-user-select: non /* Core */ -#guide { position: absolute;width: 300px;height: 300px; transition: opacity 150ms; -webkit-app-region: no-drag; border-radius: 3px} +#guide { position: absolute;width: 300px;height: 300px; transition: opacity 150ms; -webkit-app-region: no-drag; border-radius: 3px; background: red} #render { display: none } #vector { z-index: 1000;position: relative;width:300px; height:300px; } diff --git a/desktop/sources/scripts/dotgrid.js b/desktop/sources/scripts/dotgrid.js index 7b0d0c8..32b5880 100644 --- a/desktop/sources/scripts/dotgrid.js +++ b/desktop/sources/scripts/dotgrid.js @@ -117,7 +117,7 @@ function Dotgrid () { } this.getPadding = function () { - return { x: 90, y: 120 } + return { x: 60, y: 120 } } this.getWindowSize = function () { @@ -143,7 +143,7 @@ function Dotgrid () { this.requireResize = function () { const _window = this.getWindowSize() const _required = this.getRequiredSize() - const offset = { width: _window.width - _required.width, height: _window.height - _required.height } + const offset = sizeOffset(_window, _required) if (offset.width !== 0 || offset.height !== 0) { console.log(`Dotgrid`, `Require ${printSize(_required)}, but window is ${printSize(_window)}(${printSize(offset)})`) return true @@ -154,7 +154,7 @@ function Dotgrid () { this.onResize = function () { const _project = this.getProjectSize() const _padded = this.getPaddedSize() - const offset = { width: _padded.width - _project.width, height: _padded.height - _project.height } + const offset = sizeOffset(_padded, _project) if (offset.width !== 0 || offset.height !== 0) { console.log(`Dotgrid`, `Resize project to ${printSize(_padded)}`) this.tool.settings.size = _padded @@ -231,6 +231,7 @@ String.prototype.capitalize = function () { return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase() } +function sizeOffset (a, b) { return { width: a.width - b.width, height: a.height - b.height } } function printSize (size) { return `${size.width}x${size.height}` } function isJson (text) { try { JSON.parse(text); return true } catch (error) { return false } } function isEqual (a, b) { return a && b && a.x === b.x && a.y === b.y } diff --git a/desktop/sources/scripts/renderer.js b/desktop/sources/scripts/renderer.js index f8b5140..8dd0bd6 100644 --- a/desktop/sources/scripts/renderer.js +++ b/desktop/sources/scripts/renderer.js @@ -17,6 +17,7 @@ function Renderer (dotgrid) { } this.update = function (force = false) { + this.resize() dotgrid.manager.update() let render = new Image() render.onload = () => { @@ -48,14 +49,19 @@ function Renderer (dotgrid) { dotgrid.interface.update(true) } - this.resize = function (size) { - const pad = 15 - this.el.width = (size.width + pad) * this.scale - this.el.height = (size.height + pad) * this.scale - this.el.style.width = (size.width + pad) + 'px' - this.el.style.height = (size.height + pad) + 'px' - - this.update() + this.resize = function () { + const _target = dotgrid.getPaddedSize() + const _current = {width:this.el.width/this.scale,height:this.el.height/this.scale} + const offset = sizeOffset(_target,_current) + if(offset.width === 0 && offset.height === 0){ + return + } + console.log('Renderer',`Require resize: ${printSize(_target)}, from ${printSize(_current)}`) + // const pad = 15 + this.el.width = (_target.width) * this.scale + this.el.height = (_target.height) * this.scale + this.el.style.width = (_target.width) + 'px' + this.el.style.height = (_target.height) + 'px' } // Collections @@ -262,6 +268,8 @@ function Renderer (dotgrid) { this.context.drawImage(render, 0, 0, this.el.width, this.el.height) } + function printSize (size) { return `${size.width}x${size.height}` } + function sizeOffset(a,b){ return { width: a.width - b.width, height: a.height - b.height } } function isEqual (a, b) { return a && b && Math.abs(a.x) === Math.abs(b.x) && Math.abs(a.y) === Math.abs(b.y) } function clamp (v, min, max) { return v < min ? min : v > max ? max : v } }