make sure, that autorepeat happens AFTER damages have been
redrawn (to avoid enqueuing the next autorepeat before the
previous was performed.).
Makes a difference when redraw is slow (as in the imageEditors
magnified view), and avoids page-up/down action from being
evaluated twice for a single click.
--- a/Scroller.st Fri Nov 17 10:26:48 2000 +0100
+++ b/Scroller.st Mon Nov 20 14:51:47 2000 +0100
@@ -1003,16 +1003,19 @@
!Scroller methodsFor:'autoRepeat'!
+installRepeat
+ self windowGroup repairDamage.
+ Processor addTimedBlock:repeatBlock afterSeconds:repeatDelay
+!
+
repeatPageDown
self pageDown.
- Processor addTimedBlock:repeatBlock afterSeconds:repeatDelay
-
+ self installRepeat.
!
repeatPageUp
self pageUp.
- Processor addTimedBlock:repeatBlock afterSeconds:repeatDelay
-
+ self installRepeat.
! !
!Scroller methodsFor:'drawing'!
@@ -1370,7 +1373,8 @@
sensor pushUserEvent:#repeatPageUp for:self
]
].
- Processor addTimedBlock:repeatBlock afterSeconds:initialRepeatDelay
+ sensor pushUserEvent:#installRepeat for:self.
+ "/ Processor addTimedBlock:repeatBlock afterSeconds:initialRepeatDelay
]
] ifFalse:[
(curr > limit2) ifTrue:[
@@ -1385,7 +1389,8 @@
sensor pushUserEvent:#repeatPageDown for:self
]
].
- Processor addTimedBlock:repeatBlock afterSeconds:initialRepeatDelay
+ sensor pushUserEvent:#installRepeat for:self.
+ "/ Processor addTimedBlock:repeatBlock afterSeconds:initialRepeatDelay
]
] ifFalse:[
pressOffset := curr - limit1.
@@ -2487,5 +2492,5 @@
!Scroller class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.149 2000-10-20 11:09:47 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.150 2000-11-20 13:51:47 cg Exp $'
! !