From cc19594bf56526f4836144994ad301aa867ed62d Mon Sep 17 00:00:00 2001 From: Jon Ziebell Date: Fri, 5 Aug 2022 10:53:56 -0400 Subject: [PATCH] Fixed zoom bugs --- js/component/card/floor_plan_editor.js | 5 +++-- js/component/floor_plan.js | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/js/component/card/floor_plan_editor.js b/js/component/card/floor_plan_editor.js index f0cef24..8fba94d 100644 --- a/js/component/card/floor_plan_editor.js +++ b/js/component/card/floor_plan_editor.js @@ -98,7 +98,9 @@ beestat.component.card.floor_plan_editor.prototype.decorate_drawing_pane_ = func this.floor_plan_.render(parent); setTimeout(function() { - self.floor_plan_.set_width(parent.getBoundingClientRect().width); + if (parent.getBoundingClientRect().width > 0) { + self.floor_plan_.set_width(parent.getBoundingClientRect().width); + } }, 0); beestat.dispatcher.removeEventListener('resize.floor_plan_editor'); @@ -122,7 +124,6 @@ beestat.component.card.floor_plan_editor.prototype.decorate_drawing_pane_ = func this.floor_plan_.addEventListener('clear_room', self.rerender.bind(this)); this.floor_plan_.addEventListener('toggle_snapping', self.rerender.bind(this)); this.floor_plan_.addEventListener('change_group', self.rerender.bind(this)); - this.floor_plan_.addEventListener('zoom', self.rerender.bind(this)); // Add all of the entities to the SVG. this.entities_ = { diff --git a/js/component/floor_plan.js b/js/component/floor_plan.js index c0f92bc..abf9897 100644 --- a/js/component/floor_plan.js +++ b/js/component/floor_plan.js @@ -28,6 +28,8 @@ beestat.extend(beestat.component.floor_plan, beestat.component); beestat.component.floor_plan.prototype.render = function(parent) { const self = this; + this.parent_ = parent; + this.svg_ = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); this.defs_ = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); @@ -211,7 +213,7 @@ beestat.component.floor_plan.prototype.set_zoomable_ = function() { this.wheel_handler_ = function(e) { if ( e.ctrlKey === true && - e.target.namespaceURI === 'http://www.w3.org/2000/svg' + self.parent_[0].contains(e.target) ) { e.preventDefault(); @@ -698,6 +700,7 @@ beestat.component.floor_plan.prototype.zoom_ = function(scale_delta, e) { this.view_box_.height *= scale_delta; this.update_view_box_(); + this.update_toolbar(); this.dispatchEvent('zoom'); };