Why, on Windows, does the scroll speed increase when moving the cursor horizontally?

4

I've found that if I'm selecting text, cells in Excel, etc. by clicking & dragging, and moving the cursor to the bottom of the screen it scrolls automatically and has a constant speed. If I move the cursor slightly above the edge of the screen it scrolls more slowly. If I jiggle the cursor left to right and back again very quickly, the scroll speed is noticeably faster than leaving it stationary at the bottom of the screen. However, it slows again if I leave it stationary again after a quick jiggling session.

Purely out of curiosity, I'd like an explanation for what causes this behavior — ideally at the technical implementation level.

My best guess is that the scroll speed magnitude is the distance from the first click to the current cursor position, and the hypotenuse of the triangle that's created by shifting the cursor horizontally is of a larger magnitude (and thus produces a faster scroll speed). However under normal circumstances the speed is no different if my first click was toward the top of a group of text or cells, or toward the bottom — and my hypothesis doesn't account for the slowing post-jiggle.

Richard Pianka

Posted 2013-11-20T21:58:56.317

Reputation: 165

1Good question, and thank goodness this phenomenon happens or I'd still be stuck on manipulating some big spreadsheets. – panhandel – 2013-11-20T22:25:20.590

Answers

2

As a guess (since this behavior is application-specific), when the pointer is stationary a timer is used to fire scroll events, whereas each pointer motion event fires a scroll event when the pointer is in the proper hit area. Since the report rate of pointer motion is much higher than the rate of timer events, scroll events are generated more often from motion rather than waiting.

Ignacio Vazquez-Abrams

Posted 2013-11-20T21:58:56.317

Reputation: 100 516