<br><br><div class="gmail_quote">On Sun, May 20, 2012 at 12:59 PM, Chris Muller <span dir="ltr"><<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That field is used to get focus back to where you were.<br>
<br>
- editing in a code-pane somewhere..<br>
- press Control+1 to invoke the Squeak menu.<br>
- press ESC because I changed my mind.<br>
- focus is back to where I was without ever having touched the mouse.<br>
<br>
There are several places where the system latches on to objects<br>
unexpectedly like this.<br>
<br>
Normal usage of the system can't know whether its referencing a<br>
"large" object. If you are feeling annoyed by presence of large<br>
objects, then I think that should be addressed by a separate use-case<br>
-- an explicit cleanUp operation.<br></blockquote><div><br></div><div>That's what I'm suggesting. IMO, when a morph is deleted from the world then the places that could hold onto it should be notified and drop their references.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Sun, May 20, 2012 at 12:06 PM, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>> wrote:<br>
> Hi All,<br>
><br>
> through a combination of the windows menu and oldKeyboardFocus and<br>
> oldMouseFocus the DockingBarMorph holds onto closed windows. Repeat by e.g.<br>
><br>
> - inspect a new instance of some class that has no instances (ZeroDivide<br>
> works for me).<br>
><br>
> - Click on the Windows menu to populate it (it should include the ZeroDivide<br>
> inspector).<br>
><br>
> - Close the inspector, run the GC (e.g. ask for space left).<br>
><br>
> - Then check the class's instance count (ZeroDivide instanceCount). Should<br>
> be non-zero.<br>
><br>
> - Inspect the instance (ZeroDivide allInstances inspect) and do chase<br>
> pointers and you'll get a reference back through the DockingBarMorph:<br>
><br>
> globals: SystemDictionary<br>
> #World -> PasteUpMorph<br>
> submorphs: Array<br>
> 2: DockingBarMorph<br>
> oldKeyboardFocus: TextMorphForEditView<br>
> editView: PluggableTextMorphPlus<br>
> model: Inspector<br>
> object: ZeroDivide<br>
><br>
> - To clear, open the WIndows menu again (which now doesn't show the closed<br>
> inspector) and run GC. Now check instanceCount and it is back to zero.<br>
><br>
> This is annoying because it can hold onto large objects. I guess when<br>
> morphs are deleted from the world they ought to clear themselves from the<br>
> DockingBarMorph. But I'm a bit nervous about making such a change, and<br>
> hence thought I'd run it by the list first.<br>
> --<br>
> best,<br>
> Eliot<br>
><br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div><br>