async invalidate instead of synchronous redraw
authorClaus Gittinger <cg@exept.de>
Wed, 30 Aug 2000 18:17:14 +0200
changeset 2249 d0d327fefcc3
parent 2248 c6cb654bb807
child 2250 59f867f90887
async invalidate instead of synchronous redraw will see if this is ok
ListView.st
--- a/ListView.st	Wed Aug 30 18:04:36 2000 +0200
+++ b/ListView.st	Wed Aug 30 18:17:14 2000 +0200
@@ -628,7 +628,10 @@
 "/        includesNonStrings ifTrue:[self getFontParameters].
     ].
     shown ifTrue:[
-        self redrawFromLine:index.
+        index to:self lastLineShown do:[:eachLine |
+            self invalidateLine:eachLine
+        ].
+        "/ self redrawFromLine:index.
     ].
     self contentsChanged.             "recompute scrollbars"
 
@@ -647,7 +650,10 @@
     self textChanged.
 
     ((index-1) <= self lastLineShown) ifTrue:[
-        self redrawFromLine:index-1.
+        index-1 to:self lastLineShown do:[:eachLine |
+            self invalidateLine:eachLine
+        ].
+        "/  self redrawFromLine:index-1.
     ].
 
     self contentsChanged.             "recompute scrollbars"
@@ -927,7 +933,10 @@
 
     ((startLineNr <= self lastLineShown)
     and:[endLineNr >= firstLineShown]) ifTrue:[
-        self redrawFromLine:startLineNr.
+        startLineNr to:self lastLineShown do:[:eachLine |
+            self invalidateLine:eachLine
+        ].
+        "/ self redrawFromLine:startLineNr.
     ].
 
     nLines := list size.
@@ -952,34 +961,34 @@
     shown ifFalse:[^ self].
     visLine := self listLineToVisibleLine:lineNr.
     visLine notNil ifTrue:[
-	w := self widthForScrollBetween:lineNr and:(firstLineShown + nLinesShown).
+        w := self widthForScrollBetween:lineNr and:(firstLineShown + nLinesShown).
 "/        x := textStartLeft.
 "/ CLAUS fixes leftOver selection pixels
-	w := w + leftMargin.
-	x := margin.
-
-	srcY := topMargin + (visLine * fontHeight).
+        w := w + leftMargin.
+        x := margin.
+
+        srcY := topMargin + (visLine * fontHeight).
 "/        h := ((nLinesShown - visLine) * fontHeight).
-	h := (height - margin - srcY).
-	h > 0 ifTrue:[
-	    self catchExpose.
-	    self 
-		copyFrom:self 
-		x:x y:srcY
-		toX:x y:(srcY - fontHeight)
-		width:w height:h
-		async:true.
-	].
-	self redrawVisibleLine:nFullLinesShown.
-	"
-	 redraw last partial line - if any
-	"
-	(nFullLinesShown ~~ nLinesShown) ifTrue:[
-	    self redrawVisibleLine:nLinesShown
-	].
-	h > 0 ifTrue:[
-	    self waitForExpose
-	].
+        h := (height - margin - srcY).
+        h > 0 ifTrue:[
+            self catchExpose.
+            self 
+                copyFrom:self 
+                x:x y:srcY
+                toX:x y:(srcY - fontHeight)
+                width:w height:h
+                async:true.
+        ].
+        self redrawVisibleLine:nFullLinesShown.
+        "
+         redraw last partial line - if any
+        "
+        (nFullLinesShown ~~ nLinesShown) ifTrue:[
+            self redrawVisibleLine:nLinesShown
+        ].
+        h > 0 ifTrue:[
+            self waitForExpose
+        ].
     ]
 
     "Modified: / 27.2.1998 / 12:36:59 / cg"
@@ -4223,5 +4232,5 @@
 !ListView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.238 2000-08-30 16:04:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.239 2000-08-30 16:17:14 cg Exp $'
 ! !