diff options
| author | Christophe Matthieu <chm@odoo.com> | 2014-12-17 14:13:10 +0100 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2015-01-05 10:59:44 +0100 |
| commit | 1800c07f449658c1b649c8a8bdc0e48d0ceb93fe (patch) | |
| tree | c9878e4eadaf101a867356f4303eeab81685c658 /addons/website/static/lib/summernote/src/js | |
| parent | 30c0e36afaed5fd2ff90e025150dccfb34375e39 (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')
| -rw-r--r-- | addons/website/static/lib/summernote/src/js/EventHandler.js | 15 |
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); } |
