diff --git a/addons/web/static/src/core/dropdown/dropdown.js b/addons/web/static/src/core/dropdown/dropdown.js index 753412d31e1..9368fce9d61 100644 --- a/addons/web/static/src/core/dropdown/dropdown.js +++ b/addons/web/static/src/core/dropdown/dropdown.js @@ -167,6 +167,8 @@ export class Dropdown extends Component { (isOpen) => { if (isOpen) { this.props.onOpened(); + } else { + this.position.unlock(); } }, () => [this.state.open] diff --git a/addons/web/static/tests/core/dropdown_tests.js b/addons/web/static/tests/core/dropdown_tests.js index 3769aec5f36..36d6ca0a72c 100644 --- a/addons/web/static/tests/core/dropdown_tests.js +++ b/addons/web/static/tests/core/dropdown_tests.js @@ -268,6 +268,36 @@ QUnit.module("Components", ({ beforeEach }) => { assert.strictEqual(menuBox3.top - menuBox1.top, 100); }); + QUnit.test("unlock position after close", async (assert) => { + class Parent extends Component { + static template = xml` +