tree 6197b50c4fce48e0b022fcb6fa6d562e72491446
parent 55c61f4bd921bd566074ceface8efd59c5afa573
author Ishaq Hassan <ishaquehassan@gmail.com> 1778254357 +0500
committer GitHub <noreply@github.com> 1778254357 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJp/gIVCRC1aQ7uu5UhlAAA370QAD9gGPgt2+DhWiAPYeZ6PNS6
 1NCt8OzHAyMhOZtmyK2DmZlbyXfxYOQIEhR28Z9fLTcoU10si1KBs8pWKARleeHt
 nPbpwlovm/9Z82wzIWgj73mM7N9OF1p4JmnXJjG261Lw2R0w5MhYBjAWyRrJEqIs
 82blPTJPI/qcFZ1iIu50IhL58XECH2RPGTAeft22J67WYeTHGna2yC30WHhlETDB
 viDFQo12mUFKtaZmH5nvbL0f8UvX5Y2jRpSc9hQarCml24UfPs+GE+7WJeXv2M3+
 yHhe4tXPi2dYeXfnoPi1coV0WsMQPtOiITugrDAfcR1427H6IUxJXHYpxonfDlmu
 0ib1ZRj+bERTBwhs7vfom/QRYUotvHlqBeQwx9bFVmLjgX7S680aeLL0lsJDwIrI
 tbapovGerETwWgcF5l+1olVj9TSMyT9KQl42RqySXQhpRqnMMlFjFGtptySvOOrD
 kTCthl987l1dJYuHI4Tobeu6eoo+NHUOfCD3NbkAbljL+bHMa703tbKl7BpTVDRU
 AuNxjnvJ2YTeUbUuZo4Rj/3cmo/t6ESaWPZzJrwIyHlE/AIkrVPKCWGzMIZ3Nas+
 yOtiUlLx+IeJB/NOhcyCcjfg1Nk8alxq0r+rrDMmFxbTUodCQwQIyfRi+F0V5BYM
 lzHgXqsqlEGRiVmD1LRd
 =d+0s
 -----END PGP SIGNATURE-----
 

Fix SplitPane RangeError when child count changes between rebuilds (#9822)

* Fix SplitPane RangeError when child count changes between rebuilds

Fixes #9648.

SplitPane cached its fractions list in initState only. When the parent
rebuilt the widget with a different number of children (for example,
toggling a panel via a collection-if), fractions.length stayed at the
old value while widget.minSizes and widget.children shrank, causing
minSizeForIndex to read past the end of widget.minSizes and throw
'RangeError (index): Index out of range: index should be less than 2: 2'
from the layout pass.

This adds didUpdateWidget to _SplitPaneState. When the child count
changes, fractions is reset to List.of(widget.initialFractions) so it
stays in sync with the new children and minSizes. The existing
constructor assertion already guarantees children.length matches
initialFractions.length.

Bumps devtools_app_shared to 0.5.2 with a CHANGELOG entry, and adds
regression tests that pump a 3-child SplitPane and then a 2-child
SplitPane (and vice versa) and assert no exception is thrown.

* Add release note entry for SplitPane RangeError fix (#9822)

* Address review: bump devtools_app_shared CHANGELOG to 0.5.2-wip

* Address review: bump devtools_app_shared pubspec to 0.5.2-wip