Comment #1 on issue 918 by benjamin...@gmail.com: GLMTreePresentation display artifact when selection is set to an unexpanded node http://code.google.com/p/moose-technology/issues/detail?id=918
To narrow in on this, put 'self halt' at the start of MorphTreeNodeMorph>>openItemPath: Using 'browser openOn: #(($C $E ($X $O)))' as a stripped down test case go: 1. Enable Halt Once. 2. Click $X (debugger appears) 3. Enable Halt Once again prior to clicking <Proceed> button 4. Click <Debug>
The problem occurs when I <Step Over> [^container listManager setSelectedMorph: found] and inside #setSelectedMorph: when I <Step Over> 'self emptySelection' and inside that when I <Step Over> 'self selectionChanged' and following deeper
If after point 4. above, I click quickly <Over> the lines on #openInPath: then sometimes the error occurs on the line [found toggleExpandedState], but if I click slowly it seems to usually does not occur there.
Now apart from trying to troubleshoot through MorphTreeNodeMorph, I notice also that at the line [found toggleExpandedState] the arrow icon of $X changes from left pointing to down pointing - so $X is expanded - but I don't think that should happen. Looking back up the stack I see GLMTreeMorphNodeModel>>expandParentPath which makes sense to expand the parents so the selected item is visible, except that I think the selected item should not be included in the send to #changed.
So actually the following resolves the problem... GLMTreeMorphNodeModel>>expandParentPath " self openItemPath: anArray" self containerTree changed: {#rootNodes. #openItemPath}, (self path collect: [:each | each item]) removeLast.