1
0
mirror of synced 2026-04-25 03:45:30 +00:00

Better control of modern windows (#527)

* MODERNIZE, FILEBROWSER: Better control of modern windows

Also fixed Y2K bug in FILEBROWSER, updated COMPAREDIRECTORIES and WHEELSCROLL documentation.  MODERNWINDOWS allows separate specification of the hot-corner region and the top margin for siphoning off left-button clicks

* MODERNIZE.LCOM: didn't get included
This commit is contained in:
rmkaplan
2021-10-21 10:02:43 -07:00
committed by GitHub
parent bf5689be2a
commit 31d9473184
6 changed files with 236 additions and 135 deletions

View File

@@ -2,7 +2,7 @@ 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.
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.
@@ -13,11 +13,13 @@ It is toggled on and off by
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.
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.
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:
@@ -25,4 +27,4 @@ Current negative features:
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.
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.