# HG changeset patch # User Claus Gittinger # Date 854541083 -3600 # Node ID 7f50e27cb7324c904d15402e3115bd0da4cc9c07 # Parent 6e8a73b273902bcf4cf2ba50a521ac349d5e78cb checkin from browser diff -r 6e8a73b27390 -r 7f50e27cb732 ListView.st --- a/ListView.st Wed Jan 29 13:26:15 1997 +0100 +++ b/ListView.st Wed Jan 29 13:31:23 1997 +0100 @@ -2539,7 +2539,7 @@ count := nLines. sz := self size. (firstLineShown + nLines + nFullLinesShown > sz) ifTrue:[ - count := sz - firstLineShown - nFullLinesShown + 1 + count := sz - firstLineShown - nFullLinesShown + 1 ]. count <= 0 ifTrue:[^ self]. @@ -2547,50 +2547,52 @@ nPixel := fontHeight * count. shown ifFalse:[ - firstLineShown := firstLineShown + count. - viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). + firstLineShown := firstLineShown + count. + viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). ] ifTrue:[ - (count >= nLinesShown) ifTrue:[ - firstLineShown := firstLineShown + count. - viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). - self redrawFromVisibleLine:1 to:nLinesShown. - ] ifFalse:[ - m2 := margin * 2. - w := self widthForScrollBetween:firstLineShown - and:(firstLineShown + nLinesShown). - w := w + leftMargin. - - sH := lineSpacing // 2. - y0 := textStartTop - sH. - h := nPixel + y0. - n := height - h + (lineSpacing " //2 "). - - y1 := h + n - 1. - y1 >= (height - margin) ifTrue:[ - partialCopy := true. - y1 := height - margin - 1 - ]. - - self catchExpose. - self copyFrom:self x:margin y:h - toX:margin y:y0 - width:w height:(y1 - h + 1). - - firstLineShown := firstLineShown + count. - viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). - - (partialCopy == true and:[lineSpacing ~~ 0]) ifTrue:[ - self paint:bgColor. - self fillRectangleX:margin y:(y0 + (y1 - h + 1)) - width:w height:sH. - ]. - self redrawFromVisibleLine:(nFullLinesShown - count + 1) to:nLinesShown. - self waitForExpose. - ]. + (count >= nLinesShown) ifTrue:[ + firstLineShown := firstLineShown + count. + viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). + self redrawFromVisibleLine:1 to:nLinesShown. + ] ifFalse:[ + m2 := margin * 2. + w := self widthForScrollBetween:firstLineShown + and:(firstLineShown + nLinesShown). + w := w + leftMargin. + + sH := lineSpacing // 2. + y0 := textStartTop - sH. + h := nPixel + y0. + n := height - h + (lineSpacing " //2 "). + + y1 := h + n - 1. + y1 >= (height - margin) ifTrue:[ + partialCopy := true. + y1 := height - margin - 1 + ]. + + self catchExpose. + self + copyFrom:self x:margin y:h + toX:margin y:y0 + width:w height:(y1 - h + 1) + async:true. + + firstLineShown := firstLineShown + count. + viewOrigin := viewOrigin x @ (viewOrigin y + nPixel). + + (partialCopy == true and:[lineSpacing ~~ 0]) ifTrue:[ + self paint:bgColor. + self fillRectangleX:margin y:(y0 + (y1 - h + 1)) + width:w height:sH. + ]. + self redrawFromVisibleLine:(nFullLinesShown - count + 1) to:nLinesShown. + self waitForExpose. + ]. ]. self originChanged:(0 @ nPixel). - "Modified: 26.5.1996 / 15:59:29 / cg" + "Modified: 29.1.1997 / 13:30:23 / cg" ! scrollDownPixels:pix @@ -3504,5 +3506,5 @@ !ListView class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.120 1997-01-29 12:24:00 cg Exp $' + ^ '$Header: /cvs/stx/stx/libwidg/ListView.st,v 1.121 1997-01-29 12:31:23 cg Exp $' ! !