From 048612f21bbcb541e49eb7d03d706eec31c4b12b Mon Sep 17 00:00:00 2001 From: xO-Tx Date: Thu, 4 Mar 2021 16:48:50 +0000 Subject: [PATCH] [FIX] web_editor: fix anchor range selection When we double click a form submit anchor, and depending on the selected element before click, the selection range ("document.getSelection()") can start from a parent of the targeted node. This will send a wrong range to be used in LinkDialog widget. The goal of this commit is to prevent this behaviour by adjusting the range if it starts from anchor parent. Note: the bug only occurred in Firefox. Part of https://github.com/odoo/odoo/pull/62206 task-2381305 closes odoo/odoo#62206 closes odoo/odoo#67171 closes odoo/odoo#67176 X-original-commit: 9a16c313f131ed2e1017566a5f1bed134e22cc10 Signed-off-by: Quentin Smetz (qsm) --- .../static/lib/summernote/src/js/module/Editor.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js index c8846ea6200..49d38187330 100644 --- a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js +++ b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js @@ -711,7 +711,13 @@ define([ var rng = range.create().expand(dom.isAnchor); // Get the first anchor on range(for edit). - var $anchor = $(list.head(rng.nodes(dom.isAnchor))); + var anchor = list.head(rng.nodes(dom.isAnchor)); + const $anchor = $(anchor); + + if ($anchor.length && !rng.nodes()[0].isSameNode(anchor)) { + rng = range.createFromNode(anchor); + rng.select(); + } // Check if the target is a button element. let isButton = false;