PD: BTW, that thing about making all morphs having its own announcer in the extension, great move!
* sounds like it works like that as a feature, I just say it because I found most of the times is convenient that events "bubble" in any case adding bubble to morphs is as simple as:
announce: anAnnouncement
"Announces anAnnouncement from this morph and,
if anAnnouncement is still bubbling, tell its parent to do the same"
| aParent |
self announcer announce: anAnnouncement.
anAnnouncement isBubbling ifTrue:[
aParent := self getBubblingParent.
aParent ifNotNil:[ aParent announce: anAnnouncement ]]