Pharo 40150 after typing two characters in a Workspace: setOrigin:corner: referese to the undefined Object: "DegeneratedRectangle" UndefinedObject(Object)>>doesNotUnderstand: #signal CharacterBlock(Rectangle)>>setOrigin:corner: CharacterBlock>>stringIndex:text:topLeft:extent: CharacterBlockScanner>>characterBlockAtPoint:index:in: Paragraph>>characterBlockAtPoint: Paragraph>>buildSelectionBlocksFrom:to: Paragraph>>displayExtraSelectionOn: TextMorphForEditView>>drawOn: FormCanvas(Canvas)>>draw: FormCanvas(Canvas)>>drawMorph: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] in [ "Note: At some point we should generalize this into some sort of multi-canvas so that we can cross-optimize some drawing operations." "Pass 1: Draw eventual drop-shadow" self hasDropShadow ifTrue: [ self drawDropShadowOn: aCanvas ]. "Pass 2: Draw receiver itself" aCanvas roundCornersOf: self during: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] ] in TextMorphForEditView(Morph)>>fullDrawOn: in Block: [ ... FormCanvas>>roundCornersOf:in:during: FormCanvas(Canvas)>>roundCornersOf:during: [ "Note: At some point we should generalize this into some sort of multi-canvas so that we can cross-optimize some drawing operations." "Pass 1: Draw eventual drop-shadow" self hasDropShadow ifTrue: [ self drawDropShadowOn: aCanvas ]. "Pass 2: Draw receiver itself" aCanvas roundCornersOf: self during: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] ] in TextMorphForEditView(Morph)>>fullDrawOn: in Block: [ ... BlockClosure>>on:do: TextMorphForEditView(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: [ :m | myCanvas fullDrawMorph: m ] in [ :myCanvas | (self angle ~= 0.0 or: [ self scale ~= 1.0 ]) ifTrue: [ FreeTypeSettings current forceNonSubPixelDuring: [ submorphs reverseDo: [ :m | myCanvas fullDrawMorph: m ] ] ] ifFalse: [ submorphs reverseDo: [ :m | myCanvas fullDrawMorph: m ] ] ] in TransformMorph>>drawSubmorphsOn: in Block: [ :m | myCanvas fullDrawMorph: m ] Array(SequenceableCollection)>>reverseDo: [ :myCanvas | (self angle ~= 0.0 or: [ self scale ~= 1.0 ]) ifTrue: [ FreeTypeSettings current forceNonSubPixelDuring: [ submorphs reverseDo: [ :m | myCanvas fullDrawMorph: m ] ] ] ifFalse: [ submorphs reverseDo: [ :m | myCanvas fullDrawMorph: m ] ] ] in TransformMorph>>drawSubmorphsOn: in Block: [ :myCanvas | ... FormCanvas>>transformBy:clippingTo:during:smoothing: TransformMorph>>drawSubmorphsOn: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] in [ "Note: At some point we should generalize this into some sort of multi-canvas so that we can cross-optimize some drawing operations." "Pass 1: Draw eventual drop-shadow" self hasDropShadow ifTrue: [ self drawDropShadowOn: aCanvas ]. "Pass 2: Draw receiver itself" aCanvas roundCornersOf: self during: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] ] in TransformMorph(Morph)>>fullDrawOn: in Block: [ ... FormCanvas>>roundCornersOf:in:during: FormCanvas(Canvas)>>roundCornersOf:during: [ "Note: At some point we should generalize this into some sort of multi-canvas so that we can cross-optimize some drawing operations." "Pass 1: Draw eventual drop-shadow" self hasDropShadow ifTrue: [ self drawDropShadowOn: aCanvas ]. "Pass 2: Draw receiver itself" aCanvas roundCornersOf: self during: [ (aCanvas isVisible: self bounds) ifTrue: [ aCanvas drawMorph: self ]. self drawSubmorphsOn: aCanvas. self drawDropHighlightOn: aCanvas. self drawMouseDownHighlightOn: aCanvas ] ] in TransformMorph(Morph)>>fullDrawOn: in Block: [ ... BlockClosure>>on:do: TransformMorph(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: 2014-08-03 18:12 GMT+02:00 stepharo <stepharo@free.fr>:
Hi guys
We finished (we hope) a really long effort to be such that we cannot have "negative" rectangles. It implied fixing around 250 users of layoutFrame and a lot more.
We introduced point:point: to create rectangles. We improved many little points.
We deeply tested the image but we never know it may happen that a layout policy produce strange rectangles again. If you find some glitches we will fix them.
Stef and Igor