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 6f59198f21a57f4268e9f80b5deb599d0b2b7ab5..7524245393b68dc86cb28e85576f41c305967b20 100644 --- a/addons/web_editor/static/src/js/editor/snippets.editor.js +++ b/addons/web_editor/static/src/js/editor/snippets.editor.js @@ -107,7 +107,10 @@ var SnippetEditor = Widget.extend({ }, }, }); - this.draggableComponent = new SmoothScrollOnDrag(this, this.$el, $().getScrollingElement(), smoothScrollOptions); + const modalAncestorEl = this.$target[0].closest('.modal'); + const $scrollTarget = modalAncestorEl && $(modalAncestorEl) + || $().getScrollingElement(); + this.draggableComponent = new SmoothScrollOnDrag(this, this.$el, $scrollTarget, smoothScrollOptions); } else { this.$('.o_overlay_move_options').addClass('d-none'); $customize.find('.oe_snippet_clone').addClass('d-none'); @@ -722,10 +725,6 @@ var SnippetEditor = Widget.extend({ }, }); - // If a modal is open, the scroll target must be that modal - const $openModal = self.$editable.find('.modal:visible'); - self.draggableComponent.$scrollTarget = $openModal.length ? $openModal : self.$scrollingElement; - // Trigger a scroll on the draggable element so that jQuery updates // the position of the drop zones. self.draggableComponent.$scrollTarget.on('scroll.scrolling_element', function () {