Medley WHEELSCROLL 2 4 1 WHEELSCROLL 1 4 By Ron Kaplan This document was last edited in June 2023. This small file adds the ability to scroll (scrollable) windows by rotating the wheel on a wheel mouse or by moving (2?) fingers on a track pad. The capability is enabled when WHEELSCROLL.LCOM is loaded. It is toggled on and off by (ENABLEWHEELSCROLL ON) [Function] Initially (ENABLEWHEELSCROLL T). The vertical scrolling speed is controlled by the variable WHEELSCROLLDELTA [Variable] The number of points to scroll for each click of the wheel. Higher values give faster scrolling. A negative value reverses the scrolling direction. Initially value: 20. HWHEELSCROLLDELTA [Variable] If non-NIL, this is the delta used for horizontal scrolling. 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 so that it maps these transitions to characters 156 and 157. Those characters are defined as interrupts that invoke the vertical scrolling action. For horizontal scrolling sideways pushes of a wheel (if it has that) produce transitions on PAD4 and PAD5, which map to interrupt-characters 158 and 159. (156-159 are the highest right-panel characters of character-set 0 that correspond to left-panel control characters, so typically have no other conflicting meaning.) (ENABLEWHEELSCROLL NIL) causes PAD1, PAD2, PAD4, and PAD5 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 partially obscured Tedit window may scroll. 4$1$18$18$J$ PAGEHEADING RUNNINGHEAD.MODERN TERMINAL MODERN MODERN  TIMESROMAN$_Q(DEFAULTFONT 1 (TERMINAL 12) (TERMINAL 8) (TERMINAL 8) (POSTSCRIPT (TERMINAL 8)))   HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN !   :   1"LI-z