diff --git a/apps/client/src/widgets/tab_row.ts b/apps/client/src/widgets/tab_row.ts index 9d868a811..cf1367878 100644 --- a/apps/client/src/widgets/tab_row.ts +++ b/apps/client/src/widgets/tab_row.ts @@ -8,6 +8,7 @@ import appContext, { type CommandNames, type CommandListenerData, type EventData import froca from "../services/froca.js"; import attributeService from "../services/attributes.js"; import type NoteContext from "../components/note_context.js"; +import { setupHorizontalScrollViaWheel } from "./widget_utils.js"; const isDesktop = utils.isDesktop(); @@ -386,15 +387,7 @@ export default class TabRowWidget extends BasicWidget { }; setupScrollEvents() { - this.$tabScrollingContainer.on('wheel', (event) => { - const wheelEvent = event.originalEvent as WheelEvent; - if (utils.isCtrlKey(event) || event.altKey || event.shiftKey) { - return; - } - event.preventDefault(); - event.stopImmediatePropagation(); - event.currentTarget.scrollLeft += wheelEvent.deltaY + wheelEvent.deltaX; - }); + setupHorizontalScrollViaWheel(this.$tabScrollingContainer); this.$scrollButtonLeft[0].addEventListener('click', () => this.scrollTabContainer(-210)); this.$scrollButtonRight[0].addEventListener('click', () => this.scrollTabContainer(210)); diff --git a/apps/client/src/widgets/view_widgets/board_view/index.ts b/apps/client/src/widgets/view_widgets/board_view/index.ts index d4038df4d..11cfbbd57 100644 --- a/apps/client/src/widgets/view_widgets/board_view/index.ts +++ b/apps/client/src/widgets/view_widgets/board_view/index.ts @@ -1,3 +1,4 @@ +import { setupHorizontalScrollViaWheel } from "../../widget_utils"; import ViewMode, { ViewModeArgs } from "../view_mode"; import { getBoardData } from "./data"; @@ -56,7 +57,9 @@ export default class BoardView extends ViewMode { super(args, "board"); this.$root = $(TPL); + setupHorizontalScrollViaWheel(this.$root); this.$container = this.$root.find(".board-view-container"); + args.$parent.append(this.$root); } diff --git a/apps/client/src/widgets/widget_utils.ts b/apps/client/src/widgets/widget_utils.ts new file mode 100644 index 000000000..f27fe6814 --- /dev/null +++ b/apps/client/src/widgets/widget_utils.ts @@ -0,0 +1,18 @@ +import utils from "../services/utils.js"; + +/** + * Enables scrolling of a container horizontally using the mouse wheel, instead of having to use the scrollbar or keep Shift pressed. + * + * @param $container the jQuery-wrapped container element to enable horizontal scrolling for. + */ +export function setupHorizontalScrollViaWheel($container: JQuery) { + $container.on("wheel", (event) => { + const wheelEvent = event.originalEvent as WheelEvent; + if (utils.isCtrlKey(event) || event.altKey || event.shiftKey) { + return; + } + event.preventDefault(); + event.stopImmediatePropagation(); + event.currentTarget.scrollLeft += wheelEvent.deltaY + wheelEvent.deltaX; + }); +}