diff --git a/src/canvas/index.js b/src/canvas/index.js index 3ef1dccd8..6a077b07b 100644 --- a/src/canvas/index.js +++ b/src/canvas/index.js @@ -167,17 +167,21 @@ export default () => { return compView && compView._getFrame(); }, + _getLocalEl(globalEl, compView, method) { + let result = globalEl; + const frameView = this._getCompFrame(compView); + result = frameView ? frameView[method]() : result; + + return result; + }, + /** * Returns element containing all canvas tools * @return {HTMLElement} * @private */ getToolsEl(compView) { - let result = CanvasView.toolsEl; - const frameView = this._getCompFrame(compView); - result = frameView ? frameView.getToolsEl() : result; - - return result; + return this._getLocalEl(CanvasView.toolsEl, compView, 'getToolsEl'); }, /** @@ -186,11 +190,7 @@ export default () => { * @private */ getHighlighter(compView) { - let result = CanvasView.hlEl; - const frameView = this._getCompFrame(compView); - result = frameView ? frameView.getHighlighter() : result; - - return result; + return this._getLocalEl(CanvasView.hlEl, compView, 'getHighlighter'); }, /** @@ -243,8 +243,12 @@ export default () => { * @return {HTMLElement} * @private */ - getOffsetViewerEl() { - return CanvasView.offsetEl; + getOffsetViewerEl(compView) { + return this._getLocalEl( + CanvasView.offsetEl, + compView, + 'getOffsetViewerEl' + ); }, /** diff --git a/src/canvas/view/FrameView.js b/src/canvas/view/FrameView.js index 437a2ead4..4aa9ea09b 100644 --- a/src/canvas/view/FrameView.js +++ b/src/canvas/view/FrameView.js @@ -125,13 +125,21 @@ export default Backbone.View.extend({ }, getHighlighter() { + return this._getTool('[data-hl]'); + }, + + getOffsetViewerEl() { + return this._getTool('[data-offset]'); + }, + + _getTool(name) { const toolsEl = this.getToolsEl(); - if (!this.elHighl) { - this.elHighl = toolsEl.querySelector('[data-hl]'); + if (!this[name]) { + this[name] = toolsEl.querySelector(name); } - return this.elHighl; + return this[name]; }, remove() { diff --git a/src/canvas/view/FrameWrapView.js b/src/canvas/view/FrameWrapView.js index 887d364f9..f4058acfc 100644 --- a/src/canvas/view/FrameWrapView.js +++ b/src/canvas/view/FrameWrapView.js @@ -68,7 +68,7 @@ export default Backbone.View.extend({
- + ` ); diff --git a/src/commands/view/ShowOffset.js b/src/commands/view/ShowOffset.js index e0023fa8d..24ae0cc9f 100644 --- a/src/commands/view/ShowOffset.js +++ b/src/commands/view/ShowOffset.js @@ -39,7 +39,7 @@ export default { var ppfx = this.ppfx; var stateVar = state + 'State'; var method = this.getOffsetMethod(state); - var offsetViewer = canvas[method](); + var offsetViewer = canvas[method](opts.view); offsetViewer.style.display = 'block'; var marginT = this['marginT' + state];