positioning fix
authorca
Thu, 14 Nov 1996 17:40:54 +0100
changeset 883 84da1a010350
parent 882 38df470ab769
child 884 ef5688a6a636
positioning fix
ListView.st
--- a/ListView.st	Thu Nov 14 16:35:17 1996 +0100
+++ b/ListView.st	Thu Nov 14 17:40:54 1996 +0100
@@ -2412,24 +2412,30 @@
     (aListLineNr isNil "or:[shown not]") ifTrue:[^ self].
 
     shown ifFalse:[
-	firstLineShown := (aListLineNr - 1) max:1.
-	^ self
+        firstLineShown := (aListLineNr - 1) max:1.
+        firstLineShown > (list size - nFullLinesShown) ifTrue:[
+            firstLineShown := list size - nFullLinesShown
+        ].
+        list size <= nFullLinesShown ifTrue:[
+            firstLineShown := 1
+        ].
+        ^ self
     ].
 
     (aListLineNr >= firstLineShown) ifTrue:[
-	(aListLineNr < (firstLineShown + nFullLinesShown)) ifTrue:[
-	    ^ self
-	]
+        (aListLineNr < (firstLineShown + nFullLinesShown)) ifTrue:[
+            ^ self
+        ]
     ].
     (aListLineNr < nFullLinesShown) ifTrue:[
-	^ self scrollToLine:1
+        ^ self scrollToLine:1
     ].
     (nFullLinesShown < 3) ifTrue:[
-	^ self scrollToLine:aListLineNr
+        ^ self scrollToLine:aListLineNr
     ].
     bott := self numberOfLines - (nFullLinesShown - 1).
     (aListLineNr > bott) ifTrue:[
-	^ self scrollToLine:bott
+        ^ self scrollToLine:bott
     ].
     self scrollToLine:(aListLineNr - (nFullLinesShown // 2) + 1)
 
@@ -3470,5 +3476,5 @@
 !ListView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.105 1996-11-04 22:29:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.106 1996-11-14 16:40:54 ca Exp $'
 ! !