diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js b/addons/web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js index 6fabbba3fcb..612b249f67c 100644 --- a/addons/web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js +++ b/addons/web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js @@ -1897,12 +1897,7 @@ export function fillEmpty(el) { blockEl.appendChild(br); fillers.br = br; } - if ( - !el.textContent.length && - !isBlock(el) && - el.nodeName !== 'BR' && - !el.hasAttribute("data-oe-zws-empty-inline") - ) { + if (!isVisible(el) && !el.hasAttribute("data-oe-zws-empty-inline")) { // As soon as there is actual content in the node, the zero-width space // is removed by the sanitize function. const zws = document.createTextNode('\u200B'); diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js index f086d40c1ba..b593eb07a15 100644 --- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js +++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/format.test.js @@ -1,7 +1,7 @@ /** @odoo-module */ import { isSelectionFormat } from '../../src/utils/utils.js'; -import { BasicEditor, testEditor, setTestSelection, Direction, unformat } from '../utils.js'; +import { BasicEditor, testEditor, setTestSelection, Direction, unformat, insertText } from '../utils.js'; const bold = async editor => { await editor.execCommand('bold'); @@ -520,6 +520,27 @@ describe('Format', () => { contentAfter: `
a[b]c
`, }); }); + it('should insert new character inside strikethrough at first position', async () => { + await testEditor(BasicEditor, { + contentBefore: `d[a${s('bc]
')}
dA[]${s(`
`)}
[a${s('bc]
')}
A[]${s(`
`)}
${s(`A[]
`)}