A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1693.mcz==================== Summary ====================
Name: Morphic-ct.1693
Author: ct
Time: 7 October 2020, 1:51:31.244742 pm
UUID: 44dd03e5-ba2e-0449-bdcc-162507d4bb77
Ancestors: Morphic-eem.1686
Fixes unnecessary layout hickup during repositioning a SystemProgressMorph. Speeds up Collection >> #do:displayingProgress: significantly.
See
http://forum.world.st/Overhead-of-SystemProgressMorph-do-displayingProgress-is-huge-td5123048.html for more information. Thanks to Marcel for the tip! :-)
=============== Diff against Morphic-eem.1686 ===============
Item was added:
+ ----- Method: SystemProgressMorph>>extent: (in category 'as yet unclassified') -----
+ extent: foo
+
+ "self haltIf: [self extent ~= foo]."
+ ^ super extent:foo!
Item was changed:
----- Method: SystemProgressMorph>>reposition (in category 'private') -----
reposition
"Put ourself in the requested position on the display, but ensure completely within the bounds of the display"
| position |
self bounds:
+ ((self bounds
- ((self fullBounds
align: self fullBounds center
with: (self requestedPosition ifNil: [ self fullBounds center ])) translatedToBeWithin: Display boundingBox).
"Check to see if labels are wider than progress bars. In that case do
a centered instead of the default left aligned layout."
position := self width > (Inset x * 2 + (self borderWidth * 2) + BarWidth)
ifTrue: [ #topCenter ]
ifFalse: [ #leftCenter ].
self cellPositioning: position!