The behaviour
Unity 2021.3 does not resolve a wrapping row's height from the lines it wraps onto. The row keeps a one-line height, and the wrapped lines render outside it - on top of whatever the window draws beneath.
This is measured, not inferred. #438 fixed the Message Monitor's live toolbar by making its box content-sized, which works on 6000.4. The Unity 2021.3.45f1 all modes leg then failed:
TheWrappedLiveToolbarGrowsInsteadOfPaintingOverTheLogHeader
Toolbar control 'dxmessaging-monitor-live-snapshot' renders past the bottom of
the toolbar, so it paints over whatever the window draws beneath it.
Expected: less than or equal to 61.5f
But was: 76.0f
The toolbar sat at exactly 40px - its min-height, never grown - while its content needed 76. Both Monitor rows were converted to non-wrapping rows in #438 as a result, because a non-wrapping row's height is its tallest child on every version.
What is left
Ten containers in Editor/Windows/DxMessagingFlowGraphWindow.cs still set flexWrap = Wrap.Wrap:
| Line |
Container |
| 2466 |
graph legend |
| 6246 |
details-pane header |
| 6760 |
relationship summary row |
| 7112 |
widest-trace value row |
| 7252 |
route path flow |
| 7340 |
details metric grid |
| 7501 |
details hierarchy trail |
| 7692 |
relationship header |
| 7706 |
relationship flow |
| 7789 |
relationship activity row |
Each is followed by siblings in a column, so on 2021.3 a wrapped second line lands on top of the next block. Whether any of them actually wraps depends on content length - type names, trace counts, hierarchy depth - which is exactly the kind of thing that is short in a test fixture and long in a real project.
Why #438 did not fix them
These reflow genuinely variable content, unlike the Monitor toolbar, which was a fixed set of controls that split cleanly into two declared rows. Removing flex-wrap from a metric grid or a hierarchy trail is a redesign of what that block does when it runs out of width, not a deletion.
More importantly it cannot be verified here. The local MCP loop runs against a single host editor (6000.4.6f1), and this defect is invisible on it - the fix that failed on 2021.3 passed 794 EditMode tests locally. Ten unverifiable layout changes at once is how you trade one known defect for several unknown ones.
What a fix needs
- A 2021.3 editor, or a CI leg that fails on the defect before the change.
- A decision per container: a declared second row where the content is a fixed set,
flex-shrink plus a floor and a clip where it is variable, or a ScrollView where it is unbounded.
- A layout test per converted container asserting each child stays inside its parent's box at the window's minimum width - the shape
TheLiveToolbarRowsStayInsideTheirOwnBoxAtTheWindowsMinimumWidth uses. That assertion is what catches this on the 2021.3 leg, because that is where the second line lands outside.
Worth checking first
Whether this reproduces on 2022.3, which #438's evidence does not cover: that leg passed, but only because nothing in it wrapped, not because the wrap sizing was proven correct.
From #438.
The behaviour
Unity 2021.3 does not resolve a wrapping row's height from the lines it wraps onto. The row keeps a one-line height, and the wrapped lines render outside it - on top of whatever the window draws beneath.
This is measured, not inferred. #438 fixed the Message Monitor's live toolbar by making its box content-sized, which works on 6000.4. The
Unity 2021.3.45f1 all modesleg then failed:The toolbar sat at exactly 40px - its
min-height, never grown - while its content needed 76. Both Monitor rows were converted to non-wrapping rows in #438 as a result, because a non-wrapping row's height is its tallest child on every version.What is left
Ten containers in
Editor/Windows/DxMessagingFlowGraphWindow.csstill setflexWrap = Wrap.Wrap:Each is followed by siblings in a column, so on 2021.3 a wrapped second line lands on top of the next block. Whether any of them actually wraps depends on content length - type names, trace counts, hierarchy depth - which is exactly the kind of thing that is short in a test fixture and long in a real project.
Why #438 did not fix them
These reflow genuinely variable content, unlike the Monitor toolbar, which was a fixed set of controls that split cleanly into two declared rows. Removing
flex-wrapfrom a metric grid or a hierarchy trail is a redesign of what that block does when it runs out of width, not a deletion.More importantly it cannot be verified here. The local MCP loop runs against a single host editor (6000.4.6f1), and this defect is invisible on it - the fix that failed on 2021.3 passed 794 EditMode tests locally. Ten unverifiable layout changes at once is how you trade one known defect for several unknown ones.
What a fix needs
flex-shrinkplus a floor and a clip where it is variable, or aScrollViewwhere it is unbounded.TheLiveToolbarRowsStayInsideTheirOwnBoxAtTheWindowsMinimumWidthuses. That assertion is what catches this on the 2021.3 leg, because that is where the second line lands outside.Worth checking first
Whether this reproduces on 2022.3, which #438's evidence does not cover: that leg passed, but only because nothing in it wrapped, not because the wrap sizing was proven correct.
From #438.