On Mon, Dec 31, 2018, 10:56 tim Rowledge <tim@rowledge.org wrote:
Neat stuff, but I do so hate to see #isKindOf:.


> On 2018-12-31, at 3:29 AM, karl ramberg <karlramberg@gmail.com> wrote:
>
> TextMorph>>createParagraph
>
>     self setProperty: #CreatingParagraph toValue: true.
>
>     [
>         self setDefaultContentsIfNil.
>
>         "...Code here to recreate the paragraph..."
>         paragraph := (self paragraphClass new textOwner: self owner).
>         paragraph wantsColumnBreaks: successor notNil.
>         paragraph
>             compose: text
>             style: textStyle copy
>             from: self startingIndex
>             in: self container.
>         (paragraph isKindOf: TextOnCurve)
>         ifTrue:[
>                 paragraph focused: (self currentHand keyboardFocus == self).
>                 self fit.
>                 self removeProperty: #CreatingParagraph.
>                       ^ paragraph].
>         wrapFlag ifFalse:
>             ["Was given huge container at first... now adjust"
>             paragraph adjustRightX].
>         paragraph focused: (self currentHand keyboardFocus == self).
>     
>         self fit.
>     ] ensure: [self removeProperty: #CreatingParagraph].
>
>     ^ paragraph

That 'isKindOf: TextOnCurve' seems like it ought to be redundant. Both branches send #fit, focused; & removeProperty (in fact the ensure will make sure it happens twice for TextOnCurve instances) so it's hard to see what the intent is here.

What the intent looks like is to avoid the #adjustRightX if the wrapFlag is not set - which is causing the error(s), at least when I tried it.

Another alternative might be to implement TextOnCurve>>adjustRightX to be a no-op (with a suitable comment) so that it didn't do anything in this case. Then the isKindOf: could go away.

And, Karl, thank you for tracking this down!

-cbc
what is
tim
--
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim
Did you hear about Christopher Robin Hood? He stole from the rich to give to the Pooh