[IMP] summernote lib: save range each time the cuser mouseup or keyup in editable area and restore each time the user active an event.

In this case the user can click on an other page area and then click on the option without any error
This commit is contained in:
Christophe Matthieu
2015-01-05 10:59:44 +01:00
parent 30c0e36afa
commit 1800c07f44
@@ -268,9 +268,7 @@ define([
setTimeout(function () {
var layoutInfo = makeLayoutInfo(event.target);
var $editable = layoutInfo.editable();
if (!event.isDefaultPrevented()) {
editor.saveRange($editable);
}
editor.saveRange($editable);
var styleInfo = editor.currentStyle();
if (!styleInfo) { return; }
@@ -364,7 +362,6 @@ define([
}
};
var hToolbarAndPopoverClick = function (event) {
var $btn = $(event.target).closest('[data-event]');
@@ -375,6 +372,9 @@ define([
var layoutInfo = makeLayoutInfo(event.target);
var $editable = layoutInfo.editable();
editor.restoreRange($editable);
// before command: detect control selection element($target)
var $target;
if ($.inArray(eventName, ['resize', 'floatMe', 'removeMedia', 'imageShape']) !== -1) {
@@ -391,7 +391,6 @@ define([
if ($.isFunction($.summernote.pluginEvents[eventName])) {
$.summernote.pluginEvents[eventName](event, editor, layoutInfo, value);
} else if (editor[eventName]) { // on command
var $editable = layoutInfo.editable();
$editable.trigger('focus');
editor[eventName]($editable, value, $target);
event.preventDefault();
@@ -588,7 +587,10 @@ define([
(keycode > 185 && keycode < 193) || // ;=,-./` (in order)
(keycode > 218 && keycode < 223))) { // [\]' (in order))
eventName = 'visible';
} else if (!keycode) {
editor.restoreRange($editable);
}
if (eventName) {
if ($.summernote.pluginEvents[eventName]) {
var plugin = $.summernote.pluginEvents[eventName];
@@ -602,6 +604,9 @@ define([
commands[eventName].call(this, layoutInfo);
event.preventDefault();
}
if (keycode) {
editor.saveRange($editable);
}
} else if (key.isEdit(event.keyCode)) {
editor.afterCommand($editable);
}