[etoys-dev] Etoys: Etoys-Richo.43.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Aug 31 11:26:27 EDT 2010

Ricardo Moran uploaded a new version of Etoys to project Etoys:

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

Name: Etoys-Richo.43
Author: Richo
Time: 31 August 2010, 12:25:12 pm
UUID: 70f454bc-9a94-a848-b81b-b1d07389f837
Ancestors: Etoys-Richo.42

* Fix for (SQ-771) If you try and rotate a Speech Bubble Etoys Freezes

=============== Diff against Etoys-Richo.42 ===============

Item was changed:
  ----- Method: SpeechBubbleMorph>>target: (in category 'accessing') -----
  target: aMorph
  	target isMorph ifTrue: [target bubble: nil].
  	target := aMorph.
+ 	target notNil ifTrue: [target bubble: self topRendererOrSelf. self positionMyselfAccordingToTarget ]!
- 	target notNil ifTrue: [self positionMyselfAccordingToTarget ]!

Item was changed:
  ----- Method: Morph>>stopSayingOrThinking (in category '*Etoys-SpeechBubbles') -----
  | currentBubble |
  currentBubble := self bubble.
  currentBubble isNil ifTrue: [^self].
+ currentBubble topRendererOrSelf delete.
- currentBubble delete.
  self bubble: nil!

Item was changed:
  ----- Method: SpeechBubbleMorph>>drawOn: (in category 'drawing') -----
  drawOn: aCanvas!

Item was changed:
  ----- Method: SpeechBubbleMorph>>positionMyselfAccordingToTarget (in category 'stepping') -----
  	| newCenter newOwner |
  	"Modify mi position"
  	newCenter := target topRendererOrSelf center - (0 @ ((target topRendererOrSelf height + self height) / 2)).
+ 	self privatePosition: newCenter - (self topRendererOrSelf extent // 2).
- 	self privatePosition: newCenter - (self extent // 2).
  	"Don't forget to check if my owner is still the right one. Maybe the morph was inside a Playfield and the user grabed it and put it in the World"
  	(newOwner := target ownerThatIsA: PasteUpMorph) ifNil: [^self].
+ 	self owner ~= newOwner ifTrue: [newOwner addMorph: self topRendererOrSelf]!
- 	self owner ~= newOwner ifTrue: [newOwner addMorph: self]!

Item was changed:
  ----- Method: SpeechBubbleMorph>>delete (in category 'initialize-release') -----
+ 	target isMorph ifTrue: [target bubble: nil].
  	super delete.
  	target := msgMorph := type := nil.

Item was changed:
  ----- Method: SpeechBubbleMorph>>privatePosition: (in category 'private') -----
  privatePosition: aPoint
  "Always changes the position, regardless of the target"
+ self isFlexed ifTrue: [self topRendererOrSelf position: aPoint]
+ 				ifFalse: [super position: aPoint]
+ !
- super position: aPoint!

More information about the etoys-dev mailing list