diff --git a/addons/web_editor/static/src/js/editor/snippets.options.js b/addons/web_editor/static/src/js/editor/snippets.options.js index 43568382bc8..cf437733b5c 100644 --- a/addons/web_editor/static/src/js/editor/snippets.options.js +++ b/addons/web_editor/static/src/js/editor/snippets.options.js @@ -3200,15 +3200,6 @@ const ImageHandlerOption = SnippetOptionWidget.extend({ async willStart() { const _super = this._super.bind(this); await this._loadImageInfo(); - // Make sure image is loaded because we need its naturalWidth to render XML - const img = this._getImg(); - await new Promise((resolve, reject) => { - if (img.complete) { - return resolve(); - } - img.addEventListener('load', resolve, {once: true}); - img.addEventListener('error', resolve, {once: true}); - }); return _super(...arguments); }, @@ -3275,8 +3266,19 @@ const ImageHandlerOption = SnippetOptionWidget.extend({ /** * @override */ - _computeWidgetState(methodName, params) { + async _computeWidgetState(methodName, params) { const img = this._getImg(); + + // Make sure image is loaded because we need its naturalWidth + await new Promise((resolve, reject) => { + if (img.complete) { + resolve(); + return; + } + img.addEventListener('load', resolve, {once: true}); + img.addEventListener('error', resolve, {once: true}); + }); + switch (methodName) { case 'selectWidth': return img.naturalWidth;