diff --git a/addons/web/static/src/core/popover/popover_controller.js b/addons/web/static/src/core/popover/popover_controller.js index 41ecddf0ce5..14e9cca5807 100644 --- a/addons/web/static/src/core/popover/popover_controller.js +++ b/addons/web/static/src/core/popover/popover_controller.js @@ -56,7 +56,6 @@ export class PopoverController extends Component { const target = ev.composedPath()[0]; if (this.props.closeOnClickAway(target) && !this.isInside(target)) { this.props.close(); - ev.preventDefault(); } } diff --git a/addons/web/static/src/views/calendar/calendar_common/calendar_common_popover.js b/addons/web/static/src/views/calendar/calendar_common/calendar_common_popover.js index dad8d04e28b..52b1e4774f1 100644 --- a/addons/web/static/src/views/calendar/calendar_common/calendar_common_popover.js +++ b/addons/web/static/src/views/calendar/calendar_common/calendar_common_popover.js @@ -8,7 +8,7 @@ import { Field } from "@web/views/fields/field"; import { Record } from "@web/model/record"; import { getFormattedDateSpan } from "@web/views/calendar/utils"; -import { Component } from "@odoo/owl"; +import { Component, useExternalListener } from "@odoo/owl"; export class CalendarCommonPopover extends Component { setup() { @@ -17,6 +17,8 @@ export class CalendarCommonPopover extends Component { this.date = null; this.dateDuration = null; + useExternalListener(window, "pointerdown", (e) => e.preventDefault(), { capture: true }); + this.computeDateTimeAndDuration(); } diff --git a/addons/web/static/tests/core/popover/popover_service_tests.js b/addons/web/static/tests/core/popover/popover_service_tests.js index 619150668d5..02f90c09512 100644 --- a/addons/web/static/tests/core/popover/popover_service_tests.js +++ b/addons/web/static/tests/core/popover/popover_service_tests.js @@ -85,30 +85,6 @@ QUnit.test("close on click away", async (assert) => { assert.containsNone(fixture, ".o_popover #comp"); }); -QUnit.test("close on click away should be default prevented", async (assert) => { - assert.expect(6); - class Comp extends Component {} - Comp.template = xml`
in popover
`; - - popovers.add(popoverTarget, Comp, {}); - await nextTick(); - - assert.containsOnce(fixture, ".o_popover"); - assert.containsOnce(fixture, ".o_popover #comp"); - const closeButton = fixture.querySelector("#close"); - function clickListener(ev) { - assert.step(`click-event-${ev.defaultPrevented ? "default-prevented" : ""}`); - } - closeButton.addEventListener("pointerdown", clickListener); - - await click(fixture, "#close"); - - assert.containsNone(fixture, ".o_popover"); - assert.containsNone(fixture, ".o_popover #comp"); - assert.verifySteps(["click-event-default-prevented"]); - closeButton.removeEventListener("pointerdown", clickListener); -}); - QUnit.test("close on 'Escape' keydown", async (assert) => { class Comp extends Component {} Comp.template = xml`
in popover
`;