diff --git a/src/commands/main.js b/src/commands/main.js index bd4d6ef84..839bdd7d9 100644 --- a/src/commands/main.js +++ b/src/commands/main.js @@ -136,6 +136,13 @@ define(function(require) { defaultCommands['tlb-move'] = { run: function(ed){ var sel = ed.getSelected(); + + if(!sel || !sel.get('draggable')) { + console.warn('The element is not draggable'); + return; + } + + var toolbarEl = ed.Canvas.getToolbarEl(); var toolbarDisplay = toolbarEl.style.display; var cmdMove = ed.Commands.get('move-comp'); diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index ab3fef162..e5eddc8f2 100644 --- a/src/commands/view/SelectComponent.js +++ b/src/commands/view/SelectComponent.js @@ -19,7 +19,9 @@ define(function(require) { var config = this.config.em.get('Config'); this.startSelectComponent(); this.toggleClipboard(config.copyPaste); - this.config.em.on('change:canvasOffset', this.onFrameScroll); + var em = this.config.em; + em.on('change:canvasOffset', this.onFrameScroll); + em.on('change:selectedComponent', this.updateToolbar, this); }, /** @@ -244,22 +246,25 @@ define(function(require) { this.editorModel.set('selectedComponent', nMd); nMd.set('status','selected'); - this.updateToolbar(nMd); + //this.updateToolbar(nMd); } }, /** * Update toolbar if the component has one - * @param {Object} model + * @param {Object} mod */ - updateToolbar: function(model) { - // if no model get the selectedOne + updateToolbar: function(mod) { + var em = this.config.em; + var model = mod == em ? em.get('selectedComponent') : mod; + if(!model){ + return; + } var toolbar = model.get('toolbar'); var ppfx = this.ppfx; - var showToolbar = this.config.em.get('Config').showToolbar; + var showToolbar = em.get('Config').showToolbar; if (showToolbar && toolbar && toolbar.length) { - if(!this.toolbar) { var toolbarEl = this.canvas.getToolbarEl(); toolbarEl.innerHTML = ''; @@ -272,8 +277,8 @@ define(function(require) { } this.toolbar.reset(toolbar); - var view = model.view; + if(view) { this.updateToolbarPos(view.el); } @@ -405,7 +410,8 @@ define(function(require) { this.toggleClipboard(); this.hideBadge(); this.canvas.getToolbarEl().style.display = 'none'; - this.config.em.off('change:canvasOffset', this.onFrameScroll); + this.em.off('change:canvasOffset', this.onFrameScroll); + this.em.off('change:selectedComponent', this.updateToolbar, this); } }; });