Thanks. It works. I already have found a few bugs and one thing I don't understand.
(1) A few Paint things seem to implement athensFillRectangle:on: and athensFillPath:on: rather than fillRectangle:on: and fillPath:on:. It seems like it should be the latter rather than the former. I changed the names and the evil rectangle of doom disappeared.
(2) Using the AthenWrapMorph, it seems that the bottom row of pixels is not rendered or clipped. I can stop this phenomenon by changing the createSurface method to have the extent be 0@1 bigger. While that works, it seems like there's a bug somewhere in AthensCairoSurface.
(3) I ended up changing a morph so that it should render differently. In standard Pharo, I just use "self changed" and it updates. Is there an equivalent in Athens? Do I have to explicitly tell Athens to rerender it? If so, how? I tried "self render" but that did not seem to help.
Cheers,
Jeff