[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:
http://source.squeak.org/etoys/Etoys-Richo.43.mcz
==================== 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') -----
stopSayingOrThinking
| 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') -----
positionMyselfAccordingToTarget
| 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') -----
delete
+ 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