Hello,
Nice video! I was able to reproduce the problem. I made the following change to fix it:
- Code: Select all
StsTabbedApplicationsBrowserWin>>#selectListItems:clientData:callData:
| result |
result := self isMethodSelected.
super perform: clientData with: callData selectedItems.
self isMethodSelected = result
ifFalse: [
self textSelector: #methodSourceString.
super perform: clientData with: callData selectedItems ].
self isMethodSelected
ifTrue: [
self sourceCodeCommentNotebookPage labelString: self class methodCommentPageLabel.
self sourceCodeNotesNotebookPage labelString: self class methodNotesPageLabel ]
ifFalse: [
self sourceCodeCommentNotebookPage labelString: self class classCommentPageLabel.
self sourceCodeNotesNotebookPage labelString: self class classNotesPageLabel ].
sourceCodeNotebookTabSelected isNil
ifTrue: [ ^nil ].
sourceCodeNotebookTabSelected name = self class versionGraphPageName
ifTrue: [
sourceTextWidget parent unmanageChild.
drawingAreaFormWidget manageChild.
self generateVersionGraph ]
. . . however, I am very leery of a change like this because there is a lot of state to deal with, so, my approach has been, not to deal with it. Since the text pane is controlled by the super classes, let them deal with it. As soon as a change like the above is made, another issue pops up and pretty soon, the browser class, rather than the super class(-es) is/are dealing with way more state changes than it should.
The long term approach is to remove more class functionality and let the super classes handle things.
--tc