The Trunk: Morphic-mt.1715.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-mt.1715.mcz

Marcel Taeumel uploaded a new version of Morphic to project The Trunk:

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

Name: Morphic-mt.1715
Author: mt
Time: 12 January 2021, 2:04:07.252356 pm
UUID: 2641645d-9048-f44f-b6ea-2cd85e2c7ff0
Ancestors: Morphic-mt.1714

Fixes the issue where a dialog with flexible contents was not fully visible in small worlds. Thanks to Chris (cbc) for pointing this out!

(Note that I think that we need a better way for this combination of #fullBounds, #extent:, and #translatedToBeWithin: to make sure that a morph is visible in the world. May be also useful for other windows. Not sure about this variation with #center: though.)

=============== Diff against Morphic-mt.1714 ===============

Item was changed:
  ----- Method: DialogWindow>>moveToHand (in category 'position') -----
+ self moveToHand: self currentHand.!
- self moveToHand: self activeHand.!

Item was changed:
  ----- Method: DialogWindow>>moveToPreferredPosition (in category 'initialization') -----
+ "Moves the dialog window to its preferred position, which can be a point on the screen or a named widget in the dialog's central pane. Ensure that the dialog is fully visible in the world. Also see #positionOverWidgetNamed:."
+ | visibleArea decorationOffset |
+ self fullBounds. "Compute new layout to have updated bounds."
+ visibleArea := self currentWorld visibleClearArea.
+ decorationOffset := self extent - self paneMorph extent.
+ self paneMorph extent:
+ (self paneMorph extent min: visibleArea extent - decorationOffset).
+ self fullBounds. "Compute new layout to have updated bounds."
  self center:
  (preferredPosition isPoint
  ifTrue: [ preferredPosition ]
  ifFalse: [ self center + self currentHand position - preferredPosition center ]).
+ self bounds:
+ (self bounds translatedToBeWithin: visibleArea).!
- self bounds: (self bounds translatedToBeWithin: self currentWorld visibleClearArea)!