The Trunk: Morphic-mt.1105.mcz

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

The Trunk: Morphic-mt.1105.mcz

commits-2
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1105.mcz

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

Name: Morphic-mt.1105
Author: mt
Time: 11 April 2016, 10:19:30.423264 am
UUID: ea97f6eb-ebd3-f34a-b7ea-f6b0fb77b730
Ancestors: Morphic-cmm.1104

Fixes deferred balloon tips that showed up at the hand but the hand has already moved above another morph.

=============== Diff against Morphic-cmm.1104 ===============

Item was changed:
  ----- Method: NewBalloonMorph>>popUpAt: (in category 'initialization') -----
  popUpAt: point
  "Do not remove other balloon helps."
 
  | w h |
  self balloonOwner ifNil: [^ self].
  self balloonOwner isInWorld ifFalse: [^ self].
 
  w := self balloonOwner world.
  h := w activeHand.
+
+ self hasTail: true.
 
  #(bottomLeft topLeft bottomRight topRight) detect: [:nextOrientation |
  | pointWithOffset |
  self orientation: nextOrientation.
  pointWithOffset := point + self tailOffset.
  self move: pointWithOffset.
  self bounds: (self bounds translatedToBeWithin: w bounds).
  (self bounds perform: self orientation) = pointWithOffset] ifNone: ["Keep last try."].
 
  w activeHand addBalloonHelp: self.
  self openInWorld.!

Item was changed:
  ----- Method: NewBalloonMorph>>popUpFor:hand: (in category 'initialization') -----
  popUpFor: aMorph hand: aHand
+ "Pop up the receiver as balloon help for the given hand. Ignore if the hand does not touch the morph."
- "Pop up the receiver as balloon help for the given hand"
 
+ (aMorph boundsInWorld containsPoint: aHand position)
+ ifFalse: [^ self "Ignore"].
+
  self balloonOwner: aMorph.
  self popUpForHand: aHand.!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Morphic-mt.1105.mcz

jelena


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Morphic-mt.1105.mcz

Chris Muller-3
In reply to this post by commits-2
Why hasTail: true?  It's not actually "pointing" at anything other
than where the Hand is already pointing, so its two "arrows" pionting
at each other, which is redundant and even somewhat confusing.  I
don't think you will find any other UI which does that.

Strangely, I can't seem to turn it off myself -- if I specify
"hasTail: false" right there, it has no effect, the tail still
appears...

On Mon, Apr 11, 2016 at 3:19 AM,  <[hidden email]> wrote:

> Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
> http://source.squeak.org/trunk/Morphic-mt.1105.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-mt.1105
> Author: mt
> Time: 11 April 2016, 10:19:30.423264 am
> UUID: ea97f6eb-ebd3-f34a-b7ea-f6b0fb77b730
> Ancestors: Morphic-cmm.1104
>
> Fixes deferred balloon tips that showed up at the hand but the hand has already moved above another morph.
>
> =============== Diff against Morphic-cmm.1104 ===============
>
> Item was changed:
>   ----- Method: NewBalloonMorph>>popUpAt: (in category 'initialization') -----
>   popUpAt: point
>         "Do not remove other balloon helps."
>
>         | w h |
>         self balloonOwner ifNil: [^ self].
>         self balloonOwner isInWorld ifFalse: [^ self].
>
>         w := self balloonOwner world.
>         h := w activeHand.
> +
> +       self hasTail: true.
>
>         #(bottomLeft topLeft bottomRight topRight) detect: [:nextOrientation |
>                 | pointWithOffset |
>                 self orientation: nextOrientation.
>                 pointWithOffset := point + self tailOffset.
>                 self move: pointWithOffset.
>                 self bounds: (self bounds translatedToBeWithin: w bounds).
>                 (self bounds perform: self orientation) = pointWithOffset] ifNone: ["Keep last try."].
>
>         w activeHand addBalloonHelp: self.
>         self openInWorld.!
>
> Item was changed:
>   ----- Method: NewBalloonMorph>>popUpFor:hand: (in category 'initialization') -----
>   popUpFor: aMorph hand: aHand
> +       "Pop up the receiver as balloon help for the given hand. Ignore if the hand does not touch the morph."
> -       "Pop up the receiver as balloon help for the given hand"
>
> +       (aMorph boundsInWorld containsPoint: aHand position)
> +               ifFalse: [^ self "Ignore"].
> +
>         self balloonOwner: aMorph.
>         self popUpForHand: aHand.!
>
>