redraw optimizations when resized.
authorClaus Gittinger <cg@exept.de>
Sun, 23 May 1999 13:59:53 +0200
changeset 1913 37653d123b68
parent 1912 8adc571e4691
child 1914 f337a7fd99f5
redraw optimizations when resized.
Scroller.st
--- a/Scroller.st	Sat May 22 17:32:25 1999 +0200
+++ b/Scroller.st	Sun May 23 13:59:53 1999 +0200
@@ -1645,24 +1645,39 @@
                 (oldTop == newTop) ifTrue:[
                     oldBot < newBot ifTrue:[
                         "/ thumb became larger, but origin remains
+                        "/ (view became smaller)
+                        self invalidate:(Rectangle 
+                                            left:newLeft top:oldBot-thumbLevel
+                                            right:newRight bottom:newBot).
+                        ^ self.
+                    ].
+                    oldBot > newBot ifTrue:[
+                        "/ thumb became smaller, but origin remains
                         "/ (view became larger)
                         self invalidate:(Rectangle 
-                                            left:newLeft top:oldBot
-                                            right:newRight bottom:newBot).
+                                            left:newLeft top:newBot-thumbLevel
+                                            right:newRight bottom:oldBot).
+                        ^ self.
+                    ].
+                ].
+                (oldBot == newBot) ifTrue:[
+                    newTop < oldTop ifTrue:[
+                        "/ thumb became larger, but corner remains
+                        "/ (view became smaller)
+                        self invalidate:(Rectangle 
+                                            left:newLeft top:newTop
+                                            right:newRight bottom:oldTop+thumbLevel).
+                        ^ self.
+                    ].
+                    newTop > oldTop ifTrue:[
+                        "/ thumb became smaller, but corner remains
+                        "/ (view became larger)
+                        self invalidate:(Rectangle 
+                                            left:newLeft top:oldTop
+                                            right:newRight bottom:newTop+thumbLevel).
                         ^ self.
                     ]
                 ].
-
-"/                newTop <= oldTop ifTrue:[
-"/                    newBot >= oldBot ifTrue:[
-"/                        self drawThumb.
-"/                        ^ self.
-"/                    ].
-"/                
-"/                ] ifFalse:[
-"/                    self drawThumbBackgroundInX:0 y:oldTop width:width height:(newTop-oldTop).
-"/                    self drawThumb.
-"/                ]
             ].
 
             (orientation == #horizontal
@@ -1671,13 +1686,21 @@
                 (oldLeft == newLeft) ifTrue:[
                     oldRight < newRight ifTrue:[
                         "/ thumb became larger, but origin remains
+                        "/ (view became smaller)
+                        self invalidate:(Rectangle 
+                                            left:oldRight-thumbLevel top:newTop
+                                            right:newRight bottom:newBot).
+                        ^ self.
+                    ].
+                    oldRight > newRight ifTrue:[
+                        "/ thumb became smaller, but origin remains
                         "/ (view became larger)
                         self invalidate:(Rectangle 
-                                            left:oldRight top:newTop
-                                            right:newRight bottom:newBot).
+                                            left:newRight-thumbLevel top:newTop
+                                            right:oldRight bottom:newBot).
                         ^ self.
-                    ]
-                ]
+                    ].
+                ].
             ].
 
             self invalidate:(oldThumbFrame merge: thumbFrame).
@@ -1686,7 +1709,7 @@
         self invalidate
     ].
 
-    "Modified: / 15.5.1999 / 14:21:45 / cg"
+    "Modified: / 23.5.1999 / 13:50:41 / cg"
 !
 
 update:something with:aParameter from:changedObject
@@ -2378,5 +2401,5 @@
 !Scroller class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.131 1999-05-18 19:19:59 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg/Scroller.st,v 1.132 1999-05-23 11:59:53 cg Exp $'
 ! !