Henrik, all, thanks for your help with this. I've been away from the codeface for a while and haven't yet tried all of the fixes. I did get things rendering well by caching the form canvas and redrawing that when required (just as the HandMorph does - as I said, the rendering while dragging is always OK). Relevant code below:

>>>>
drawOn: aCanvas
super drawOn: aCanvas.

cachedCanvas isNil ifTrue: [
cachedCanvas := (aCanvas allocateForm: self bounds extent) getCanvas.
self drawContentsOn: cachedCanvas.
].
aCanvas translucentImage: cachedCanvas form at: self bounds origin.
<<<<

Best
David


------------------
David Harvey
www.teamsandtechnology.com
www.cateams.com
@david_harvey


On 7 April 2010 12:45, David Harvey <david@teamsandtechnology.com> wrote:
Hi list,

I'm writing a little charting morph, and while playing with rotating text for axis labels came across something which I've noted in Morphs text handling a couple of times.�

If I apply a transform in a drawing operation, rotated text _appears_ to be drawn twice, slightly offset, giving a scrappy bold look. It seems only to do this when drawing on a form canvas that's backed onto the display: if you pick and drag the morph, the text is rendered beautifully.

The test morph attached isolates the problem. The transcript logging is an attempt to see what might be happening: looking at the output it appears that there are circumstances in which the during: block is invoked twice.

Any thoughts?

David

------------------
David Harvey
www.teamsandtechnology.com
www.cateams.com
@david_harvey