Major
Detail
Major
Detail
Actual situation: If the left mouse button is held down while moving the scroll bar in the library window, but the mouse is not moved, the contents of the library move a few millimeters to the right and left with high frequency.
Not reproducible:
- on external screens
- in Firefox
Cause
A scroll operation in Frozen tables is performed by JS for all relevant table parts (header, body, scrollbar) using event listeners. If a scroll operation is detected on one of the table parts, a synchronization of the other table parts takes place. A check for a change in the scroll position compared to the last event processing takes place beforehand. However, this check does not work in chromium-based browsers, since in these the scroll position is provided as a double value that differs minimally for each event. In addition, when converting the scroll position between the different table parts (scrollbar is larger than the flexible table part), there is a conversion or rounding blur. This leads to the fact that each table part synchronization in turn triggers an event processing with table part synchronization on the synchronized parts. Therefore, the visible scroll position "jitters" around a mean value.
Solution
Before synchronizing the table parts, the corresponding event listeners are deactivated and then reactivated.
Test
- Switch to the "Tables" view in TL-Demo
- Adaptation of the display to show all columns
- Execution of scroll operations: at the end of the scroll operation (e.g. end of mouse movement) the table does not "jitter" at any scroll position.