diff --git a/src/zen/workspaces/ZenWorkspaces.mjs b/src/zen/workspaces/ZenWorkspaces.mjs index a5c09b6cc..176e9e8be 100644 --- a/src/zen/workspaces/ZenWorkspaces.mjs +++ b/src/zen/workspaces/ZenWorkspaces.mjs @@ -500,6 +500,17 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature { workspaceWrapper.pinnedTabsContainer, tabs ); + this.initIndicatorContextMenu(workspaceWrapper.indicator); + workspaceWrapper.indicator.addEventListener('wheel', (event) => { + const isTrackpad = + (event.wheelDeltaY && event.wheelDeltaY === event.deltaY * -3) || + event.deltaMode === 0; + + const verticalScroll = Math.abs(event.deltaY) > Math.abs(event.deltaX); + if (!isTrackpad || verticalScroll) { + this.scrollInDirection(event.deltaY); + } + }); resolve(); }, { once: true } @@ -591,6 +602,14 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature { }); } + scrollInDirection(delta) { + // Determine scroll direction + const rawDirection = delta > 0 ? 1 : -1; + + const direction = this.naturalScroll ? -1 : 1; + this.changeWorkspaceShortcut(rawDirection * direction); + } + _setupSidebarHandlers() { const toolbox = gNavToolbox; @@ -631,11 +650,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature { const delta = isVerticalScroll ? event.deltaY : event.deltaX; if (Math.abs(delta) < scrollThreshold) return; - // Determine scroll direction - let rawDirection = delta > 0 ? 1 : -1; - - let direction = this.naturalScroll ? -1 : 1; - this.changeWorkspaceShortcut(rawDirection * direction); + this.scrollInDirection(delta); this._lastScrollTime = currentTime; },