major
minor
major
minor
Current Situation: If you hold down the left mouse button while moving the scroll bar in the library window—but without moving the mouse—the library’s contents shift rapidly by a few millimeters to the right and left.
Not reproducible:
- on external monitors
- in Firefox
Cause
A scroll operation in Frozen Tables is performed via JavaScript for all relevant table components (header, body, scrollbar) using event listeners. If a scroll operation is detected on one of the table components, the other table components are synchronized. Prior to this, a check is performed to determine whether the scroll position has changed since the last event processing. However, this check does not work in Chromium-based browsers because, in these browsers, the scroll position is provided as a double value that varies slightly with each event. In addition, when converting the scroll position between the different table sections (the scrollbar is larger than the flexible table section), there is a conversion or rounding error. This causes each table section synchronization to, in turn, trigger event processing with table section synchronization on the synchronized sections. As a result, the visible scroll position “flickers” around a mean value.
Solution
Before synchronizing the table sections, the corresponding event listeners are deactivated and then reactivated.
Test
- Switch to the “Tables” view in TL-Demo
- Adjust the view to display all columns
- Perform scrolling operations: at the end of the scrolling operation (e.g., when the mouse movement stops), the table does not "jitter" at any scroll position.