Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1178.mcz ==================== Summary ==================== Name: System-mt.1178 Author: mt Time: 11 October 2020, 1:36:25.615652 pm UUID: fd8d0758-0935-c34c-8cb9-64d908b75f70 Ancestors: System-eem.1177 Refactoring 'Active' variables -- Step 2 of 2. Removes all uses of Active(World|Hand|Event) by replacing those with "self current(World|Hand|Event)" or "Project current world" when required to not add/cement Morphic dependency. See http://forum.world.st/Changeset-Eliminating-global-state-from-Morphic-td5121690.html =============== Diff against System-eem.1177 =============== Item was changed: ----- Method: NativeImageSegment>>smartFillRoots: (in category 'read/write segment') ----- smartFillRoots: dummy | refs known ours ww blockers | "Put all traced objects into my arrayOfRoots. Remove some that want to be in outPointers. Return blockers, an IdentityDictionary of objects to replace in outPointers." blockers := dummy blockers. known := (refs := dummy references) size. refs keys do: [:obj | "copy keys to be OK with removing items" (obj isSymbol) ifTrue: [refs removeKey: obj. known := known-1]. (obj class == PasteUpMorph) ifTrue: [ obj isWorldMorph & (obj owner == nil) ifTrue: [ (dummy project ~~ nil and: [obj == dummy project world]) ifFalse: [ refs removeKey: obj. known := known-1. blockers at: obj put: (StringMorph contents: 'The worldMorph of a different world')]]]. "Make a ProjectViewMorph here" "obj class == Project ifTrue: [Transcript show: obj; cr]." (blockers includesKey: obj) ifTrue: [ refs removeKey: obj ifAbsent: [known := known+1]. known := known-1]. ]. + ours := (dummy project ifNil: [Project current]) world. - ours := dummy project ifNotNil: [dummy project world] ifNil: [ActiveWorld]. refs keysDo: [:obj | obj isMorph ifTrue: [ ww := obj world. (ww == ours) | (ww == nil) ifFalse: [ refs removeKey: obj. known := known-1. blockers at: obj put: (StringMorph contents: obj printString, ' from another world')]]]. "keep original roots on the front of the list" dummy rootObject do: [:rr | refs removeKey: rr ifAbsent: []]. (self respondsTo: #classOrganizersBeRoots:) ifTrue: "an EToys extension" [self classOrganizersBeRoots: dummy]. ^dummy rootObject, refs keys asArray! Item was changed: ----- Method: Preferences class>>roundedWindowCornersChanged (in category 'updating - system') ----- roundedWindowCornersChanged "The user changed the value of the roundedWindowCorners preference. React" + Project current world fullRepaintNeeded.! - ActiveWorld fullRepaintNeeded! Item was changed: ----- Method: Preferences class>>vectorVocabularySettingChanged (in category 'updating - system') ----- vectorVocabularySettingChanged "The current value of the useVectorVocabulary flag has changed; now react. No senders, but invoked by the Preference object associated with the #useVectorVocabulary preference." + Smalltalk isMorphic ifFalse: [^ self]. + Project current world makeVectorUseConformToPreference.! - Smalltalk isMorphic ifTrue: - [ActiveWorld makeVectorUseConformToPreference]! Item was changed: ----- Method: RealEstateAgent class>>maximumUsableArea (in category 'accessing') ----- maximumUsableArea + + ^ self maximumUsableAreaInWorld: Project current world! - ^self maximumUsableAreaInWorld: ActiveWorld! Item was changed: ----- Method: RealEstateAgent class>>maximumUsableAreaInWorld: (in category 'accessing') ----- maximumUsableAreaInWorld: aWorldOrNil | allowedArea | allowedArea := Display usableArea. aWorldOrNil ifNotNil: [ - allowedArea := allowedArea intersect: aWorldOrNil visibleClearArea. Smalltalk isMorphic ifTrue: [ + allowedArea := allowedArea intersect: aWorldOrNil visibleClearArea. (((Smalltalk classNamed: 'Flaps') ifNil: [false] ifNotNil: [:cls | cls anyFlapsVisibleIn: aWorldOrNil]) and: [self respondsTo: #reduceByFlaps:]) ifTrue: [allowedArea := self reduceByFlaps: allowedArea]]]. ^allowedArea! Item was changed: ----- Method: SARInstaller>>fileInMorphsNamed:addToWorld: (in category 'client services') ----- fileInMorphsNamed: memberName addToWorld: aBoolean "This will load the Morph (or Morphs) from the given member. Answers a Morph, or a list of Morphs, or nil if no such member or error. If aBoolean is true, also adds them and their models to the World." | member morphOrList | member := self memberNamed: memberName. + member ifNil: [^ self errorNoSuchMember: memberName]. - member ifNil: [ ^self errorNoSuchMember: memberName ]. self installed: member. + - morphOrList := member contentStream fileInObjectAndCode. + morphOrList ifNil: [^ nil]. + aBoolean ifTrue: [Project current world addMorphsAndModel: morphOrList]. + + ^ morphOrList! - morphOrList ifNil: [ ^nil ]. - aBoolean ifTrue: [ ActiveWorld addMorphsAndModel: morphOrList ]. - - ^morphOrList - ! |
Free forum by Nabble | Edit this page |