Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1715.mcz==================== 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') -----
moveToHand
+ self moveToHand: self currentHand.!
- self moveToHand: self activeHand.!
Item was changed:
----- Method: DialogWindow>>moveToPreferredPosition (in category 'initialization') -----
moveToPreferredPosition
+ "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)!