[FIX] web_editor: setTag after triple click should not update next line
Before this commit: Changing header style with triple click selection bring changes to the next line, which it should not. After this commit: Now even after triple click selection the change stays with the selected part. Task-2810134 closes odoo/odoo#95613 X-original-commit: dd64fc7730ef34d715cfb2146a7ef8a7ba98f34e Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
This commit is contained in:
@@ -579,7 +579,8 @@ export const editorCommands = {
|
||||
// Change tags
|
||||
setTag(editor, tagName) {
|
||||
const restoreCursor = preserveCursor(editor.document);
|
||||
const selectedBlocks = [...new Set(getTraversedNodes(editor.editable).map(closestBlock))];
|
||||
const range = getDeepRange(editor.editable, { correctTripleClick: true });
|
||||
const selectedBlocks = [...new Set(getTraversedNodes(editor.editable, range).map(closestBlock))];
|
||||
for (const block of selectedBlocks) {
|
||||
if (
|
||||
['P', 'PRE', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'BLOCKQUOTE'].includes(
|
||||
|
||||
@@ -598,9 +598,8 @@ export function getCursorDirection(anchorNode, anchorOffset, focusNode, focusOff
|
||||
* @param {Node} editable
|
||||
* @returns {Node[]}
|
||||
*/
|
||||
export function getTraversedNodes(editable) {
|
||||
export function getTraversedNodes(editable, range = getDeepRange(editable)) {
|
||||
const document = editable.ownerDocument;
|
||||
const range = getDeepRange(editable);
|
||||
if (!range) return [];
|
||||
const iterator = document.createNodeIterator(range.commonAncestorContainer);
|
||||
let node;
|
||||
|
||||
Reference in New Issue
Block a user