* All source files converted to LF Also, HPRINT: EQUALALL knows about CL arrays FILEIO: STREAM record with fields for external format functions * Delete makeinit.dribble * Converted CR to LF on internal/library and docs/Documentation Tools
29 lines
1.5 KiB
Plaintext
29 lines
1.5 KiB
Plaintext
lispusers/WHEELSCROLL
|
|
|
|
Written by Ron Kaplan, February 2021.
|
|
|
|
This small file adds the ability to scroll (scrollable) windows by rotating the wheel on a wheel mouse or by moving fingers on a track pad.
|
|
|
|
The capability is enabled when WHEELSCROLL.LCOM is loaded.
|
|
|
|
It is toggled on and off by
|
|
|
|
(ENABLEWHEELSCROLL ON) (initially (ENABLEWHEELSCROLL T))
|
|
|
|
The scrolling speed is controlled by the variable
|
|
|
|
WHEELSCROLLDELTA (initially 20)
|
|
The number of points to scroll for each click of the wheel. Higher values give faster scrolling. A negative value reverses the scrolling direction.
|
|
|
|
Implementation:
|
|
|
|
Lisp receives a key transition on PAD1 or PAD2 for vertical scrolling when the wheel rotates and no other keys are down. (ENABLEWHEELSCROLL T) modifies the keyaction table that maps these to characters 520 and 521, and those characters are defined as interrupts that invoke the scrolling action. (ENABLEWHEELSCROLL NIL) causes PAD1 and PAD2 to be ignored.
|
|
|
|
Current negative features:
|
|
|
|
1. When the wheel is depressed for middle-button effect (and no other keys are down), an accidental rotation of the wheel during the transition (up and/or down) may cause unintended scrolling.
|
|
|
|
We need to develop a strategy, either in Lisp, Maiko, or X, to discriminate intended middle-button pushes from intended scrolling. This is not an issue for track-pad scrolling.
|
|
|
|
2. When the wheel is rotated over a window that partially occludes a Tedit window with a caret blinking in its unoccluded region, both the target window and the Tedit window may scroll.
|