Marcel Taeumel uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-mt.1101.mcz
==================== Summary ====================
Name: System-mt.1101 Author: mt Time: 25 September 2019, 10:39:08.307838 am UUID: c829ba68-0ccb-d34e-aa5a-9a8fe3496e25 Ancestors: System-mt.1100
Fixes #beTopProject, but disconnects visual project-viewer hierarchy from actual project tree. As backup project, avoid cycling between two broken project kinds but only follow project parents.
=============== Diff against System-mt.1100 ===============
Item was changed: ----- Method: Project class>>tryOtherProjectForRecovery: (in category 'error recovery') ----- tryOtherProjectForRecovery: errorMessage "Try entering the parent project if it uses a different user interface. We determine this by comparing the project's class." | safeProject nextProject | nextProject := Project current. safeProject := nil. "Search parent projects for one of a different type" [safeProject notNil or: [nextProject isTopProject]] whileFalse: [ nextProject := nextProject parent. (Project current isKindOf: nextProject class) ifFalse: [safeProject := nextProject]]. + + "September 2019 --- Do not cycle between Morphic and MVC if both break." "No suitable parent project found, search all projects for any one of different type." + "safeProject ifNil: [Smalltalk garbageCollect. - safeProject ifNil: [Smalltalk garbageCollect. safeProject := Project allSubInstances + detect: [:proj | (proj isKindOf: Project current class) not] ifNone: []]." + - detect: [:proj | (proj isKindOf: Project current class) not] ifNone: []]. safeProject ifNotNil: [:p | p enterForEmergencyRecovery. "Active process will usually suspend after this."]. !
Item was changed: ----- Method: Project>>beTopProject (in category 'sub-projects & hierarchy') ----- beTopProject
+ | previousTop | self isTopProject ifTrue: [^ self]. + previousTop := self class topProject. + self parent deletingProject: self. "Just remove views and refs to me." + self addProject: previousTop. "The current top project will be my child now." + self setParent: self. "I am the new top project."! - self addProject: self class topProject. - self setParent: self.!
Item was changed: ----- Method: Project>>setParent: (in category 'sub-projects & hierarchy') ----- setParent: newParent
- "Notify the current parent to discard views and other references. Avoids deleting that project later if the former parent is deleted. You can only have one parent anyway.." - (self parent isKindOf: Project) ifTrue: [ - self parent ~= newParent ifTrue: [self parent deletingProject: self]. - ]. - parentProject := newParent. nextProject := previousProject := nil.!
packages@lists.squeakfoundation.org