Merge pull request #2030 from TriliumNext/tab

fix: improve tab scroll UX by switching from instant to smooth behavior
This commit is contained in:
Elian Doran 2025-05-28 17:49:42 +03:00 committed by GitHub
commit 23439a0b0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -386,15 +386,8 @@ export default class TabRowWidget extends BasicWidget {
}; };
setupScrollEvents() { setupScrollEvents() {
let isScrolling = false;
this.$tabScrollingContainer[0].addEventListener('wheel', (event) => { this.$tabScrollingContainer[0].addEventListener('wheel', (event) => {
if (!isScrolling) { this.scrollTabContainer(event.deltaY * 1.5);
isScrolling = true;
requestAnimationFrame(() => {
this.scrollTabContainer(event.deltaY * 1.5, 'instant');
isScrolling = false;
});
}
}); });
this.$scrollButtonLeft[0].addEventListener('click', () => this.scrollTabContainer(-200)); this.$scrollButtonLeft[0].addEventListener('click', () => this.scrollTabContainer(-200));
@ -480,7 +473,7 @@ export default class TabRowWidget extends BasicWidget {
const totalTabsWidthUsingTarget = flooredClampedTargetWidth * numberOfTabs + marginWidth; const totalTabsWidthUsingTarget = flooredClampedTargetWidth * numberOfTabs + marginWidth;
const totalExtraWidthDueToFlooring = tabsContainerWidth - totalTabsWidthUsingTarget; const totalExtraWidthDueToFlooring = tabsContainerWidth - totalTabsWidthUsingTarget;
const widths = []; const widths: number[] = [];
let extraWidthRemaining = totalExtraWidthDueToFlooring; let extraWidthRemaining = totalExtraWidthDueToFlooring;
for (let i = 0; i < numberOfTabs; i += 1) { for (let i = 0; i < numberOfTabs; i += 1) {