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 ecfb7188934..86165217120 100644
--- a/addons/web_editor/static/src/js/editor/snippets.options.js
+++ b/addons/web_editor/static/src/js/editor/snippets.options.js
@@ -1907,33 +1907,45 @@ const SnippetOptionWidget = Widget.extend({
obj = createPropertyProxy(this, '$target', $firstSubTarget);
}
- const show = await this._computeWidgetVisibility.call(obj, widget.getName(), params);
- if (!show) {
- widget.toggleVisibility(false);
- return;
+ // Make sure to check the visibility of all sub-widgets. For
+ // simplicity and efficiency, those will be checked with main
+ // widgets params.
+ const allSubWidgets = [widget];
+ let i = 0;
+ while (i < allSubWidgets.length) {
+ allSubWidgets.push(...allSubWidgets[i]._userValueWidgets);
+ i++;
}
-
- const dependencies = widget.getDependencies();
- const dependenciesData = [];
- dependencies.forEach(depName => {
- const toBeActive = (depName[0] !== '!');
- if (!toBeActive) {
- depName = depName.substr(1);
+ const proms = allSubWidgets.map(async widget => {
+ const show = await this._computeWidgetVisibility.call(obj, widget.getName(), params);
+ if (!show) {
+ widget.toggleVisibility(false);
+ return;
}
- const widget = this._requestUserValueWidgets(depName)[0];
- if (widget) {
- dependenciesData.push({
- widget: widget,
- toBeActive: toBeActive,
- });
- }
- });
- const dependenciesOK = !dependenciesData.length || dependenciesData.some(depData => {
- return (depData.widget.isActive() === depData.toBeActive);
- });
+ const dependencies = widget.getDependencies();
+ const dependenciesData = [];
+ dependencies.forEach(depName => {
+ const toBeActive = (depName[0] !== '!');
+ if (!toBeActive) {
+ depName = depName.substr(1);
+ }
- widget.toggleVisibility(dependenciesOK);
+ const widget = this._requestUserValueWidgets(depName)[0];
+ if (widget) {
+ dependenciesData.push({
+ widget: widget,
+ toBeActive: toBeActive,
+ });
+ }
+ });
+ const dependenciesOK = !dependenciesData.length || dependenciesData.some(depData => {
+ return (depData.widget.isActive() === depData.toBeActive);
+ });
+
+ widget.toggleVisibility(dependenciesOK);
+ });
+ return Promise.all(proms);
});
const showUI = await this._computeVisibility();
diff --git a/addons/website/static/src/js/editor/snippets.options.js b/addons/website/static/src/js/editor/snippets.options.js
index 230f74f4884..b4b5f4d625e 100644
--- a/addons/website/static/src/js/editor/snippets.options.js
+++ b/addons/website/static/src/js/editor/snippets.options.js
@@ -1895,6 +1895,15 @@ options.registry.Box = options.Class.extend({
}
return this._super(...arguments);
},
+ /**
+ * @override
+ */
+ async _computeWidgetVisibility(widgetName, params) {
+ if (widgetName === 'fake_inset_shadow_opt') {
+ return false;
+ }
+ return this._super(...arguments);
+ },
});
options.registry.CookiesBar = options.registry.SnippetPopup.extend({
diff --git a/addons/website/views/snippets/snippets.xml b/addons/website/views/snippets/snippets.xml
index 717d09af2a8..4102ac5d0af 100644
--- a/addons/website/views/snippets/snippets.xml
+++ b/addons/website/views/snippets/snippets.xml
@@ -167,7 +167,7 @@
-
+