diff --git a/addons/web_editor/static/src/js/editor/snippets.editor.js b/addons/web_editor/static/src/js/editor/snippets.editor.js index 0c565dcbc60..62daaa37b41 100644 --- a/addons/web_editor/static/src/js/editor/snippets.editor.js +++ b/addons/web_editor/static/src/js/editor/snippets.editor.js @@ -2308,9 +2308,20 @@ var SnippetsMenu = Widget.extend({ self.options.wysiwyg.odooEditor.automaticStepSkipStack(); $toInsert.removeClass('oe_snippet_body'); self.draggableComponent.$scrollTarget.off('scroll.scrolling_element'); - if (!dropped && ui.position.top > 3 && ui.position.left + ui.helper.outerHeight() < self.el.getBoundingClientRect().left) { - var $el = $.nearest({x: ui.position.left, y: ui.position.top}, '.oe_drop_zone', {container: document.body}).first(); + const point = {x: ui.position.left, y: ui.position.top}; + const container = {container: document.body}; + let droppedOnNotNearest = $.touching( + point, '.oe_structure_not_nearest', container + ).first(); + // If dropped outside of a dropzone with class oe_structure_not_nearest, + // move the snippet to the nearest dropzone without it + const selector = droppedOnNotNearest.length + ? '.oe_drop_zone' + : ':not(.oe_structure_not_nearest) > .oe_drop_zone'; + let $el = $.nearest( + point, selector, container + ).first(); if ($el.length) { $el.after($toInsert); dropped = true; diff --git a/addons/website/static/src/scss/website.edit_mode.scss b/addons/website/static/src/scss/website.edit_mode.scss index 989b3816209..eb52198612e 100644 --- a/addons/website/static/src/scss/website.edit_mode.scss +++ b/addons/website/static/src/scss/website.edit_mode.scss @@ -27,6 +27,13 @@ $-editor-messages-margin-x: 2%; } } +.oe_structure_not_nearest .oe_drop_zone { + &:before { + opacity: 0.5; + line-height: 35px !important; + } +} + .o_editable { &:not(:empty), &[data-oe-type] { &:not([data-oe-model="ir.ui.view"]):not([data-oe-type="html"]):not(.o_editable_no_shadow):not([data-oe-type="image"]):hover, diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml index 32cc797c8ce..e5a9897351e 100644 --- a/addons/website_blog/views/website_blog_templates.xml +++ b/addons/website_blog/views/website_blog_templates.xml @@ -10,7 +10,7 @@ Visible in all blogs' pages - diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 37e39f6b654..76bc0cac047 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -260,7 +260,7 @@ Shop
-
+
@@ -328,7 +328,7 @@
-
+
@@ -546,7 +546,7 @@
-
+
@@ -638,7 +638,7 @@
-
+