Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Merge pull request #3051 from matrix-org/travis/bc-sidescroller
Browse files Browse the repository at this point in the history
Counteract smooth scrolling on breadcrumbs
  • Loading branch information
turt2live authored Jun 3, 2019
2 parents 1515f8d + 8c414a9 commit 8daef3f
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/components/structures/IndicatorScrollbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,18 @@ export default class IndicatorScrollbar extends React.Component {
const yRetention = 1.0;

if (Math.abs(e.deltaX) <= xyThreshold) {
// HACK: We increase the amount of scroll to counteract smooth scrolling browsers.
// Smooth scrolling browsers (Firefox) use the relative area to determine the scroll
// amount, which means the likely small area of content results in a small amount of
// movement - not what people expect. We pick arbitrary values for when to apply more
// scroll, and how much to apply. On Windows 10, Chrome scrolls 100 units whereas
// Firefox scrolls just 3 due to smooth scrolling.

const additionalScroll = e.deltaY < 0 ? -50 : 50;

// noinspection JSSuspiciousNameCombination
this._scrollElement.scrollLeft += e.deltaY * yRetention;
const val = Math.abs(e.deltaY) < 25 ? (e.deltaY + additionalScroll) : e.deltaY;
this._scrollElement.scrollLeft += val * yRetention;
}
}
};
Expand Down

0 comments on commit 8daef3f

Please sign in to comment.