The Trunk: EToys-dtl.320.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: EToys-dtl.320.mcz

commits-2
David T. Lewis uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-dtl.320.mcz

==================== Summary ====================

Name: EToys-dtl.320
Author: dtl
Time: 18 February 2018, 4:27:25.556073 pm
UUID: 20a128db-1e69-4ab6-aa02-5bd0facd67e3
Ancestors: EToys-eem.319

When opening an EventRecordingSpace, do not initialize flaps in the Worldlet until after opening in world (but before calling show). This allows displayWorld to find the outermost containing world for a worldlet by querying the owner of the worldlet. Earlier implementations relied on direct access to the global World, which is now discouraged.

See discussion in [squeak-dev] Event Theatre in Object Catalog sparks DNU in 6.0-trunk

=============== Diff against EToys-eem.319 ===============

Item was changed:
  ----- Method: EventRecordingSpace class>>open (in category 'instance creation') -----
  open
  "Open up a new instance of the receiver."
 
  | anInst |
  anInst := self new.
  anInst visible: false.
  anInst openInWorldOrWorldlet.
+ anInst initializeFlaps. "after placing anInst in its world"
  anInst center:  anInst owner center.
  anInst show
 
 
  "
  EventRecordingSpace open.
  "!

Item was changed:
  ----- Method: EventRecordingSpace>>initialize (in category 'initialization') -----
  initialize
  "Initialize the receiver to be a complete mentoring space"
 
  super initialize.
 
  eventRecorder := MentoringEventRecorder new.
  eventRecorder recordingSpace: self.
  self beSticky.
  self listDirection: #topToBottom; hResizing: #shrinkWrap; vResizing: #shrinkWrap.
  self extent: 1@1.
  self borderWidth: 2; borderColor: Color gray.
  self useRoundedCorners.
  showingSoundPanel := false.
 
  (contentArea := Worldlet new)
  setNameTo: 'tutorial';
  color: Color white;
  setProperty: #automaticPhraseExpansion toValue: true;
  beSticky.
 
  self addMorphBack: contentArea.
 
  controlsPanel := AlignmentMorph newRow.
  controlsPanel hResizing: #spaceFill.
  controlsPanel  listCentering: #center.
  controlsPanel listSpacing: #equal.
  controlsPanel cellInset: 4.
  controlsPanel minHeight: 32.
  self addMorphBack: controlsPanel.
 
  soundPanel := AlignmentMorph newRow.
  soundPanel hResizing: #spaceFill.
  soundPanel  listCentering: #center.
  soundPanel listSpacing: #equal.
  soundPanel cellInset: 4.
  soundPanel minHeight: 32.
  soundPanel color:  (Color r: 1.0 g: 0.839 b: 0.645).
 
  self makeStatusButtons.
 
  state := #readyToRecord.
  self populateControlsPanel.
 
+ "initializeFlaps will be called later, after opening in world"
+
+ !
- SugarNavigatorBar showSugarNavigator
- ifTrue:
- [self addSugarNavigatorFlap]
- ifFalse:
- [self addSuppliesFlap.
- self addNavigatorFlap]!

Item was added:
+ ----- Method: EventRecordingSpace>>initializeFlaps (in category 'initialization') -----
+ initializeFlaps
+
+ SugarNavigatorBar showSugarNavigator
+ ifTrue:
+ [self addSugarNavigatorFlap]
+ ifFalse:
+ [self addSuppliesFlap.
+ self addNavigatorFlap]!