[squeak-dev] The Trunk: Morphic-mt.2018.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Jul 12 13:36:57 UTC 2022

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

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

Name: Morphic-mt.2018
Author: mt
Time: 12 July 2022, 3:36:52.06129 pm
UUID: 065963d6-9f4a-8b4c-b10c-a6ec95710a60
Ancestors: Morphic-mt.2017

Morphic layouting. Do not abort full re-layout just because some bounds happen to be unchanged in a proportional layout. Submorphs may still have their own layout to be updated.

That is, do not rely on the drawing algorithm to send its #fullBounds later. Instead, do it like TableLayout and use the fullBounds instVar to determine whether something needs to be done or not.

For later, maybe also question that "self layoutFrame ifNil:" check for the very same reason. We might just want to re-use layoutBounds in that case as it is an erroneuous case anyway. All submorphs of a "proportional owner" must configure a layoutFrame.

=============== Diff against Morphic-mt.2017 ===============

Item was changed:
  ----- Method: Morph>>layoutProportionallyInBounds:positioning: (in category 'layout') -----
  layoutProportionallyInBounds: layoutBounds positioning: cellPositioning
  	"Layout specific. Apply the given bounds to the receiver."
  	| cellBounds frame |
  	frame := self layoutFrame ifNil:[^self].
  	"compute the cell size the receiver has given its layout frame"
  	cellBounds := frame layout: self bounds in: layoutBounds.
  	cellBounds := cellBounds topLeft extent: (cellBounds extent max: self minExtent).
- 	cellBounds = self bounds ifTrue: [^self]. "no change"
  	^self layoutInBounds: cellBounds positioning: cellPositioning!

More information about the Squeak-dev mailing list