The Trunk: Morphic-cmm.610.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-cmm.610.mcz

commits-2
Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.610.mcz

==================== Summary ====================

Name: Morphic-cmm.610
Author: cmm
Time: 14 February 2012, 9:14:20.48 pm
UUID: d8725b91-2f26-4c63-b9a3-05601133a3ab
Ancestors: Morphic-dtl.609

- Avoid index-out-of-bounds error when a TextMorph which set to avoid-occlusions, composeAllRectangles.

=============== Diff against Morphic-dtl.609 ===============

Item was changed:
  ----- Method: TextComposer>>composeAllRectangles: (in category 'as yet unclassified') -----
  composeAllRectangles: rectangles
 
  | charIndexBeforeLine numberOfLinesBefore reasonForStopping |
 
  actualHeight := defaultLineHeight.
  charIndexBeforeLine := currCharIndex.
  numberOfLinesBefore := lines size.
  reasonForStopping := self composeEachRectangleIn: rectangles.
 
  currentY := currentY + actualHeight.
  currentY > theContainer bottom ifTrue: [
  "Oops -- the line is really too high to fit -- back out"
  currCharIndex := charIndexBeforeLine.
  lines size - numberOfLinesBefore timesRepeat: [lines removeLast].
  ^self
  ].
 
  "It's OK -- the line still fits."
  maxRightX := maxRightX max: scanner rightX.
+ 1 to: rectangles size - 1 do: [ :i | |lineIndex|
- 1 to: rectangles size - 1 do: [ :i |
  "Adjust heights across rectangles if necessary"
+ lineIndex:=lines size - rectangles size + i.
+ (lines size between: 1 and: lineIndex) ifTrue:
+ [(lines at: lineIndex)
+ lineHeight: lines last lineHeight
+ baseline: lines last baseline]
- (lines at: lines size - rectangles size + i)
- lineHeight: lines last lineHeight
- baseline: lines last baseline
  ].
  isFirstLine := false.
  reasonForStopping == #columnBreak ifTrue: [^nil].
  currCharIndex > theText size ifTrue: [
  ^nil "we are finished composing"
  ].
  !