summaryrefslogtreecommitdiff
path: root/addons/website/static/lib/summernote/src/js/EventHandler.js
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2014-12-17 14:13:10 +0100
committerChristophe Matthieu <chm@odoo.com>2015-01-05 10:59:44 +0100
commit1800c07f449658c1b649c8a8bdc0e48d0ceb93fe (patch)
treec9878e4eadaf101a867356f4303eeab81685c658 /addons/website/static/lib/summernote/src/js/EventHandler.js
parent30c0e36afaed5fd2ff90e025150dccfb34375e39 (diff)
[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
Diffstat (limited to 'addons/website/static/lib/summernote/src/js/EventHandler.js')
-rw-r--r--addons/website/static/lib/summernote/src/js/EventHandler.js15
1 files changed, 10 insertions, 5 deletions
diff --git a/addons/website/static/lib/summernote/src/js/EventHandler.js b/addons/website/static/lib/summernote/src/js/EventHandler.js
index 2cb04fbe819..481581ad5ac 100644
--- a/addons/website/static/lib/summernote/src/js/EventHandler.js
+++ b/addons/website/static/lib/summernote/src/js/EventHandler.js
@@ -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);
}