I really think that we should radically simplify what we have.
MenuMorph just makes me sick.
Here is another example of wonderful Morphic code....
StringMorph>>boundsForBalloon
"Some morphs have bounds that are way too big. This is a contorted
way of making things work okay in PluggableListMorphs, whose list
elements historically have huge widths"
| ownerOwner |
^ ((owner notNil and: [(ownerOwner := owner owner) notNil]) and:
[ownerOwner isKindOf: PluggableListMorph])
ifTrue:
[self boundsInWorld intersect: ownerOwner boundsInWorld
ifNone: [self boundsInWorld] ]
ifFalse:
[super boundsForBalloon]