The Trunk: Morphic-tpr.1059.mcz

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

The Trunk: Morphic-tpr.1059.mcz

commits-2
tim Rowledge uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-tpr.1059.mcz

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

Name: Morphic-tpr.1059
Author: tpr
Time: 18 December 2015, 4:26:36.049 pm
UUID: ce2af9d7-dcb1-4225-8fea-1a0b3ae28ab4
Ancestors: Morphic-tpr.1058

When opening sub-menus with insufficient rightwards space on the Display we instead put them to the left of the parent. This change makes the leftward slide a bit smaller so that the mouse stays over menus was the user slides to the new menu; thus no strange closing of menus etc.

=============== Diff against Morphic-tpr.1058 ===============

Item was changed:
  ----- Method: MenuMorph>>popUpAdjacentTo:forHand:from: (in category 'control') -----
  popUpAdjacentTo: rightOrLeftPoint forHand: hand from: sourceItem
  "Present this menu at the given point under control of the given hand."
 
  | tryToPlace selectedOffset rightPoint leftPoint |
  hand world startSteppingSubmorphsOf: self.
  popUpOwner := sourceItem.
 
  self fullBounds.
  self updateColor.
 
  "ensure layout is current"
  selectedOffset := (selectedItem
  ifNil: [self items first]) position - self position.
  tryToPlace := [:where :mustFit | | delta |
  self position: where - selectedOffset.
  delta := self boundsInWorld amountToTranslateWithin: sourceItem worldBounds.
  (delta x = 0
  or: [mustFit])
  ifTrue: [delta = (0 @ 0)
  ifFalse: [self position: self position + delta].
  sourceItem world addMorphFront: self.
  ^ self]].
  rightPoint := rightOrLeftPoint first + ((self layoutInset + self borderWidth) @ 0).
+ leftPoint := rightOrLeftPoint last + ((self layoutInset + self borderWidth - self width) @ 0).
- leftPoint := rightOrLeftPoint last - ((self layoutInset + self borderWidth + self width) @ 0).
  tryToPlace
  value: rightPoint value: false;
  value: leftPoint value: false;
  value: rightPoint value: true.!