summaryrefslogtreecommitdiff
path: root/addons/website/static/lib/summernote/src/js/EventHandler.js
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2014-12-11 13:54:58 +0100
committerChristophe Matthieu <chm@odoo.com>2015-01-05 10:59:43 +0100
commit064275d7fbdb49611938828662bd2ae683c3adaf (patch)
tree9f66200d50db14fd39391362f52ab0e948f7cb50 /addons/website/static/lib/summernote/src/js/EventHandler.js
parent5b07a0dc617c02141da800ee0225ef672c9433ff (diff)
[FIX] summernote lib: the prevent default for mousedown image to prevent ie and ff default 'features' must set the range because the cursor is used for edition.
Modify the code to use the dom range. Warning for picture because the browser can't target the image but the container. https://github.com/summernote/summernote/pull/803
Diffstat (limited to 'addons/website/static/lib/summernote/src/js/EventHandler.js')
-rw-r--r--addons/website/static/lib/summernote/src/js/EventHandler.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/addons/website/static/lib/summernote/src/js/EventHandler.js b/addons/website/static/lib/summernote/src/js/EventHandler.js
index 97409ac385f..2cb04fbe819 100644
--- a/addons/website/static/lib/summernote/src/js/EventHandler.js
+++ b/addons/website/static/lib/summernote/src/js/EventHandler.js
@@ -1,8 +1,8 @@
define([
- 'summernote/core/agent', 'summernote/core/dom', 'summernote/core/async', 'summernote/core/key', 'summernote/core/list',
+ 'summernote/core/agent', 'summernote/core/dom', 'summernote/core/async', 'summernote/core/key', 'summernote/core/list', 'summernote/core/range',
'summernote/editing/Style', 'summernote/editing/Editor', 'summernote/editing/History',
'summernote/module/Toolbar', 'summernote/module/Popover', 'summernote/module/Handle', 'summernote/module/Dialog'
-], function (agent, dom, async, key, list,
+], function (agent, dom, async, key, list, range,
Style, Editor, History,
Toolbar, Popover, Handle, Dialog) {
@@ -259,14 +259,19 @@ define([
//preventDefault Selection for FF, IE8+
if (dom.isImg(event.target)) {
event.preventDefault();
+ range.createFromNode(event.target).select();
}
};
var hToolbarAndPopoverUpdate = function (event) {
// delay for range after mouseup
setTimeout(function () {
- var layoutInfo = makeLayoutInfo(event.currentTarget || event.target);
- var styleInfo = editor.currentStyle(event.target);
+ var layoutInfo = makeLayoutInfo(event.target);
+ var $editable = layoutInfo.editable();
+ if (!event.isDefaultPrevented()) {
+ editor.saveRange($editable);
+ }
+ var styleInfo = editor.currentStyle();
if (!styleInfo) { return; }
var isAirMode = layoutInfo.editor().data('options').airMode;
@@ -359,6 +364,7 @@ define([
}
};
+
var hToolbarAndPopoverClick = function (event) {
var $btn = $(event.target).closest('[data-event]');
@@ -415,10 +421,9 @@ define([
event.preventDefault();
event.stopPropagation();
- var $editable = makeLayoutInfo(event.target).editable();
+ var layoutInfo = makeLayoutInfo(event.target);
+ var $editable = layoutInfo.editable();
var nEditableTop = $editable.offset().top - $document.scrollTop();
-
- var layoutInfo = makeLayoutInfo(event.currentTarget || event.target);
var options = layoutInfo.editor().data('options');
$document.on('mousemove', function (event) {