feat(tab): enable Shift + Wheel to switch tabs

This commit is contained in:
SiriusXT 2025-05-30 20:40:33 +08:00
parent dd4cb7de7d
commit 7010472bea

View File

@ -399,8 +399,8 @@ export default class TabRowWidget extends BasicWidget {
isScrolling = false; isScrolling = false;
} }
}; };
this.$tabScrollingContainer[0].addEventListener('wheel', (event) => { this.$tabScrollingContainer[0].addEventListener('wheel', async (event) => {
if (!event.shiftKey || event.deltaX === 0) { if (!event.shiftKey && event.deltaX === 0) {
event.preventDefault(); event.preventDefault();
// Clamp deltaX between TAB_CONTAINER_MIN_WIDTH and TAB_CONTAINER_MIN_WIDTH * 3 // Clamp deltaX between TAB_CONTAINER_MIN_WIDTH and TAB_CONTAINER_MIN_WIDTH * 3
deltaX += Math.sign(event.deltaY) * Math.max(Math.min(Math.abs(event.deltaY), TAB_CONTAINER_MIN_WIDTH * 3), TAB_CONTAINER_MIN_WIDTH); deltaX += Math.sign(event.deltaY) * Math.max(Math.min(Math.abs(event.deltaY), TAB_CONTAINER_MIN_WIDTH * 3), TAB_CONTAINER_MIN_WIDTH);
@ -408,6 +408,14 @@ export default class TabRowWidget extends BasicWidget {
isScrolling = true; isScrolling = true;
stepScroll(); stepScroll();
} }
} else if (event.shiftKey) {
event.preventDefault();
if (event.deltaY > 0) {
await appContext.tabManager.activateNextTabCommand();
} else {
await appContext.tabManager.activatePreviousTabCommand();
}
this.activeTabEl.scrollIntoView();
} }
}); });