diff --git a/src/components/bottom_bar/bottom_bar.ts b/src/components/bottom_bar/bottom_bar.ts index 0190d54ea..f632e7d3a 100644 --- a/src/components/bottom_bar/bottom_bar.ts +++ b/src/components/bottom_bar/bottom_bar.ts @@ -240,7 +240,7 @@ export class BottomBar extends Component { } onSheetMouseDown(sheetId: UID, event: MouseEvent) { - if (event.button !== 0) return; + if (event.button !== 0 || this.env.model.getters.isReadonly()) return; this.closeMenu(); const mouseX = event.clientX; diff --git a/tests/components/bottom_bar.test.ts b/tests/components/bottom_bar.test.ts index 5d00d3213..09f8d3013 100644 --- a/tests/components/bottom_bar.test.ts +++ b/tests/components/bottom_bar.test.ts @@ -825,5 +825,12 @@ describe("BottomBar component", () => { await dragSheet("Sheet1", { mouseMoveX: 10, mouseUp: false }); expect(fixture.querySelector(".o-menu")).toBeFalsy(); }); + + test("Cannot drag & drop sheets in readonly mode", async () => { + model.updateMode("readonly"); + await dragSheet("Sheet1", { mouseMoveX: 10, mouseUp: false }); + expect(getElComputedStyle('.o-sheet[data-id="Sheet1"]', "position")).toBe(""); + expect(getElComputedStyle('.o-sheet[data-id="Sheet1"]', "left")).toBe(""); + }); }); });