diff --git a/src/js/includes/ButtonMenu.js b/src/js/includes/ButtonMenu.js index 3cc14e9..04c7f59 100644 --- a/src/js/includes/ButtonMenu.js +++ b/src/js/includes/ButtonMenu.js @@ -34,15 +34,11 @@ function ButtonMenu(canvas, settings) { */ this.addItem = function(id, text, callback, isActive) { _textButtons.push( - new TextButton(id, text, settings) + new TextButton(id, text, settings, isActive) .onClick(callback) .set({__group: this}) ); - if (isActive) { - _textButtons[_textButtons.length - 1].setActive(); - } - return this; }; diff --git a/src/js/includes/Canvas.js b/src/js/includes/Canvas.js index 56637c8..c3e09bd 100644 --- a/src/js/includes/Canvas.js +++ b/src/js/includes/Canvas.js @@ -216,10 +216,12 @@ var Canvas = fabric.util.createClass(fabric.Canvas, { }, toggle3D: function (showAs3d) { - this.getButtonMenu().getItems().forEach(function(button) { - var buttonState = button.getId() === '3d' ? showAs3d : !showAs3d; - button.setActive(buttonState); - }); + if (this.__type === 'canvas') { + this.getButtonMenu().getItems().forEach(function (button) { + var buttonState = button.getId() === '3d' ? showAs3d : !showAs3d; + button.setActive(buttonState); + }); + } if (!showAs3d) { return this.get3dHandler().disable(); diff --git a/src/js/includes/RulerHandler.js b/src/js/includes/RulerHandler.js index ec2bd5b..748a2e3 100644 --- a/src/js/includes/RulerHandler.js +++ b/src/js/includes/RulerHandler.js @@ -94,13 +94,13 @@ function RulerHandler(viewport) { viewport.canvas.add(_lines.x); viewport.canvas.add(_lines.y); - _rect.x = new TextButton('horizontalRuler', 'H', config.rulerHandle) + _rect.x = new TextButton('horizontalRuler', 'H', config.rulerHandle, true) .set(config.rulerHandle.x(_lines, bounds)) .addTo(viewport.canvas) .on('moving', Event.onMove) .trigger('moving'); - _rect.y = new TextButton('verticalRuler', 'V', config.rulerHandle) + _rect.y = new TextButton('verticalRuler', 'V', config.rulerHandle, true) .set(config.rulerHandle.y(_lines, bounds)) .addTo(viewport.canvas) .on('moving', Event.onMove) diff --git a/src/js/includes/TextButton.js b/src/js/includes/TextButton.js index 8189390..64f232a 100644 --- a/src/js/includes/TextButton.js +++ b/src/js/includes/TextButton.js @@ -7,9 +7,10 @@ var config = require('./config'); * @param {String} text - text to be shown inside the button * @param {Object} settings */ -function TextButton(id, text, settings) { +function TextButton(id, text, settings, isActive) { fabric.Group.call(this); + var __active = isActive || false; var _callback = null; var _rect = null; var _text = null;