Investigating fullBounds/layoutChanged

Lex Spoon squeak-dev at lists.squeakfoundation.org
Fri Oct 25 15:57:11 UTC 2002


"Andreas Raab" <Andreas.Raab at gmx.de> wrote:
> Secondly, think about it - the hand (aka "the user representation", "the
> mouse impersonation") is a morph too, yes?! So the hand is a morph, and
> if a morph moves it has to notify its parent about that change which in
> turn will invalidate its layout. So that, whenever you move your cursor,
> the hand will notify its parent (the world) which will in fact send a
> layoutChanged. If no layoutChanged would be sent if the hand moves then
> something would be horribly broken.

It seems obvious that this could be a problem, even if it isn't for all
of us people with normal worlds.  Shouldn't a person be allowed to
attach a layout to the whole world?  Can't we imagine that the layout
would rather not get redone every time the mouse moves?

But it can be fixed without the special case.  Someone could add a
super-World morph that contains the hand morph plus the regular world
morph.  Then, layout changes to the super-world will happen but be
trivial -- there's no reason for a complex layout at this top level. 
All the simplicity of the basic morphic model remains, with no special
cases.

In fact, it may make sense to put the global flaps in the top level, as
well -- it always seems wierd to stick flap morphs into the "world"
morph, because those flaps seem to be floating above it, not in it.  For
example, why should it take any care to avoid sending out flap morphs
when a project is saved?  I bet the present situation requires it.


I don't know what this outer morph would be called.  StagingAreaMorph? 
But it seems to simplify some issues.  It's not *just* adding another
level of indirection and shoving the dirt around; there seems to be a
real conceptual difference between the project a person is working on,
and the things like flaps and hands that the person is using to work on
that project.


-Lex



More information about the Squeak-dev mailing list