Fix for mouseleave not being triggered during resize
[MAILPOET-1819]
This commit is contained in:
committed by
M. Shull
parent
727240ca0c
commit
1b044f77a3
@ -10,11 +10,28 @@ BL.HighlightEditingBehavior = Marionette.Behavior.extend({
|
|||||||
modelEvents: {
|
modelEvents: {
|
||||||
startEditing: 'onStartEditing',
|
startEditing: 'onStartEditing',
|
||||||
stopEditing: 'onStopEditing',
|
stopEditing: 'onStopEditing',
|
||||||
|
resizeMove: 'onResizeMove',
|
||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
mouseenter: 'onMouseEnter',
|
mouseenter: 'onMouseEnter',
|
||||||
mouseleave: 'onMouseLeave',
|
mouseleave: 'onMouseLeave',
|
||||||
},
|
},
|
||||||
|
// mouseleave event is not always triggered during resizing
|
||||||
|
// so we have to check if the pointer is still inside using resize event coordinates
|
||||||
|
onResizeMove: function onResizeMove(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
|
||||||
|
) {
|
||||||
|
this.isFocusedByPointer = false;
|
||||||
|
} else {
|
||||||
|
this.isFocusedByPointer = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
onMouseEnter: function onMouseEnter(mouseEvent) {
|
onMouseEnter: function onMouseEnter(mouseEvent) {
|
||||||
this.isFocusedByPointer = true;
|
this.isFocusedByPointer = true;
|
||||||
// Ignore mouse events when dragging
|
// Ignore mouse events when dragging
|
||||||
|
@ -59,6 +59,7 @@ BL.ResizableBehavior = Marionette.Behavior.extend({
|
|||||||
that.$el.addClass('mailpoet_resize_active');
|
that.$el.addClass('mailpoet_resize_active');
|
||||||
}).on('resizemove', function resizemove(event) {
|
}).on('resizemove', function resizemove(event) {
|
||||||
var onResize = that.options.onResize.bind(that);
|
var onResize = that.options.onResize.bind(that);
|
||||||
|
that.view.model.trigger('resizeMove', event);
|
||||||
return onResize(event);
|
return onResize(event);
|
||||||
})
|
})
|
||||||
.on('resizeend', function resizeend() {
|
.on('resizeend', function resizeend() {
|
||||||
|
Reference in New Issue
Block a user