diff options
Diffstat (limited to 'addons/web_editor/static/src/js')
| -rw-r--r-- | addons/web_editor/static/src/js/editor/summernote.js | 11 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/widgets/widgets.js | 11 |
2 files changed, 15 insertions, 7 deletions
diff --git a/addons/web_editor/static/src/js/editor/summernote.js b/addons/web_editor/static/src/js/editor/summernote.js index 3e11cdc6886..b3e06fa1716 100644 --- a/addons/web_editor/static/src/js/editor/summernote.js +++ b/addons/web_editor/static/src/js/editor/summernote.js @@ -1802,12 +1802,17 @@ $.summernote.pluginEvents.indent = function (event, editor, layoutInfo, outdent) var $dom = $(ancestor); if (!dom.isList(ancestor)) { + // to indent a selection, we indent the child nodes of the common + // ancestor that contains this selection $dom = $(dom.node(ancestor)).children(); } - if (!$dom.length) { - $dom = $(dom.ancestor(r.sc, dom.isList) || dom.ancestor(r.sc, dom.isCell)); + if (!$dom.not('br').length) { + // if selection is inside a list, we indent its list items + $dom = $(dom.ancestor(r.sc, dom.isList)); if (!$dom.length) { - $dom = $(r.sc).closest(options.styleTags.join(',')); + // if the selection is contained in a single HTML node, we indent + // the first ancestor 'content block' (P, H1, PRE, ...) or TD + $dom = $(r.sc).closest(options.styleTags.join(',')+',td'); } } diff --git a/addons/web_editor/static/src/js/widgets/widgets.js b/addons/web_editor/static/src/js/widgets/widgets.js index 8a08c4e18f4..53df66e9ba7 100644 --- a/addons/web_editor/static/src/js/widgets/widgets.js +++ b/addons/web_editor/static/src/js/widgets/widgets.js @@ -455,11 +455,13 @@ var ImageWidget = MediaWidget.extend({ /** * @private */ - _toggleImage: function (attachment, clearSearch) { + _toggleImage: function (attachment, clearSearch, force_select) { if (this.multiImages) { var img = _.select(this.images, function (v) { return v.id === attachment.id; }); if (img.length) { - this.images.splice(this.images.indexOf(img[0]),1); + if (!force_select) { + this.images.splice(this.images.indexOf(img[0]),1); + } } else { this.images.push(attachment); } @@ -527,17 +529,18 @@ var ImageWidget = MediaWidget.extend({ /** * @private */ - _onImageClick: function (ev) { + _onImageClick: function (ev, force_select) { var $img = $(ev.currentTarget); var attachment = _.find(this.records, function (record) { return record.id === $img.data('id'); }); - this._toggleImage(attachment); + this._toggleImage(attachment, false, force_select); }, /** * @private */ _onImageDblClick: function (ev) { + this._onImageClick(ev, true); this.trigger_up('save_request'); }, /** |
