Morphic slowness (was Re: Does *anyone* use MVC?)

Scott Wallace scott.wallace at squeakland.org
Sat Aug 3 22:08:35 UTC 2002


Ned and Tim,

After delving quite a bit further into this, I finally decided to give up on the early-entry-into-the-world approach, and instead frontally addressed the issue of getting the updating menu items precomputed without their coming into the world, and that seems to do the trick, so at the moment this appears to be a vastly favorable alternative, resulting in just the invalidations one would hope for, yet circumventing the spurious-menu-selection bug.

(See the PS below about how to duplicate the spurious-menu-selection bug.  The seemingly sporadic, random nature of this bug is due to the fact that it depends on the precise dynamic wording of the "undo" item in the world menu at the moment, which depends on earlier history of actions in the image.)

Regarding the question of whether the #startSteppingSubmorphsOf: call (in the earlier approach) had been necessary: theoretically it was not necessary, but in this case, demonstrably, it *was* necessary.  Without the startStepping... call, the bug still happened.

When I last asked Andreas (more than a year ago) whether *all* calls to #startSteppingSubmorphsOf: were now unnecessary, his answer was that "*nearly* all" were now unnecessary.  This seems to be a case where it clearly *was* still necessary, thus corroborating the caution in his reply.

In any case, if we adopt the approach of the attached fileout, the point may be moot here.

Please let me know what your experiences are with this.  Thanks.

Cheers,

  -- Scott

PS:  The conditions that trigger the spurious-menu-selection bug, in the case of the world menu, are that undo be enabled and that the dynamic wording of the "undo" or "redo" command be *wider* than the default width of the world menu.    Even one pixel wider will trigger the bug.  If you move a rectangle named "Rectangle", so that the undo wording becomes 'undo 'move Rectangle'", that's wide enough.


At 7:47 AM -0700 8/3/02, Ned Konz wrote:
>On Saturday 03 August 2002 02:15 am, Scott Wallace wrote:
>> The attached change set offers the following compromise:  it still
>> puts the menu into the world before final positioning, so that the
>> menu's items can step, but it does so only after giving the menu an
>> assuredly-off-screen position, so that no screen invalidation
>> occurs.  Once the menu items have stepped, the actual positioning
>> of the menu takes place.
>
>Scott, is it necessary to call #startSteppingSubmorphsOf: considering
>that you already call #addMorph, which calls #intoWorld:, which
>already starts everything stepping (per Andreas)?
-------------- next part --------------
Skipped content of type multipart/appledouble


More information about the Squeak-dev mailing list