diff --git a/src/components/bottom_bar/bottom_bar.ts b/src/components/bottom_bar/bottom_bar.ts index b65b50942..9f2cb4ead 100644 --- a/src/components/bottom_bar/bottom_bar.ts +++ b/src/components/bottom_bar/bottom_bar.ts @@ -223,7 +223,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 visibleSheets = this.getVisibleSheets(); diff --git a/tests/bottom_bar/bottom_bar_component.test.ts b/tests/bottom_bar/bottom_bar_component.test.ts index 033fd0313..3f920a36d 100644 --- a/tests/bottom_bar/bottom_bar_component.test.ts +++ b/tests/bottom_bar/bottom_bar_component.test.ts @@ -845,5 +845,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(""); + }); }); });