diff --git a/assets/js/src/newsletter_editor/behaviors/ResizableBehavior.js b/assets/js/src/newsletter_editor/behaviors/ResizableBehavior.js index 18c88083aa..aaff05e19f 100644 --- a/assets/js/src/newsletter_editor/behaviors/ResizableBehavior.js +++ b/assets/js/src/newsletter_editor/behaviors/ResizableBehavior.js @@ -6,7 +6,7 @@ import Marionette from 'backbone.marionette'; import BehaviorsLookup from 'newsletter_editor/behaviors/BehaviorsLookup'; import interact from 'interact'; -import _ from 'underscore'; +import { isEventInsideElement } from 'newsletter_editor/utils'; var BL = BehaviorsLookup; @@ -66,7 +66,7 @@ BL.ResizableBehavior = Marionette.Behavior.extend({ .on('resizeend', function resizeend(event) { that.view.model.trigger('stopEditing'); that.isBeingResized = null; - if (!that.detectMousePointerFocus(event).isViewFocused) { + if (!isEventInsideElement(event, that.view.$el)) { that.hideResizeHandle(); } that.$el.removeClass('mailpoet_resize_active'); @@ -86,20 +86,4 @@ BL.ResizableBehavior = Marionette.Behavior.extend({ this.view.$(this.options.resizeHandleSelector).addClass('mailpoet_hidden'); } }, - detectMousePointerFocus: function detectMousePointerFocus(event) { - var eventCopy = _.extend({}, event); - var offset = this.view.$el.offset(); - var height = this.view.$el.height(); - var width = this.view.$el.width(); - if (event.pageX < offset.left - || event.pageX > offset.left + width - || event.pageY < offset.top - || event.pageY > offset.top + height - ) { - eventCopy.isViewFocused = false; - } else { - eventCopy.isViewFocused = true; - } - return eventCopy; - }, }); diff --git a/assets/js/src/newsletter_editor/utils.js b/assets/js/src/newsletter_editor/utils.js new file mode 100644 index 0000000000..93212d599b --- /dev/null +++ b/assets/js/src/newsletter_editor/utils.js @@ -0,0 +1,13 @@ +export const isEventInsideElement = (event, $el) => { + var offset = $el.offset(); + var height = $el.height(); + var width = $el.width(); + if (event.pageX < offset.left + || event.pageX > offset.left + width + || event.pageY < offset.top + || event.pageY > offset.top + height + ) { + return false; + } + return true; +};