Defer a twice-asked widget's local redraw to its parent
A span asks a share child twice in one draw: in the room, whose answer its slots rest on, and in the decided slot, whose cross-axis answer it reads. The record keeps only the second question, so a local redraw that found that answer unchanged never told the row that the first had -- seed 946 at depth 6, where emptying a fixed-height column turns it from a share into a fixed width as wide as the row. A widget its parent asked more than once in one draw now defers to that parent, like one whose declared length changed. Pinned as unsettled::emptying_a_column_the_row_asked_twice_asks_the_row_again. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
3091fb86df
commit
0ef87ebfcf
4 files changed
+105
-3
No files matched your search
@@ -189,7 +189,8 @@ impl<'a> Painter<'a> {
|
||||
diag::region_node(id.id(), self.id, within);
|
||||
}
|
||||
// A child listed twice would be moved twice.
|
||||
if !self.children.contains(&id.id()) {
|
||||
let re_asked = self.children.contains(&id.id());
|
||||
if !re_asked {
|
||||
self.children.push(id.id());
|
||||
}
|
||||
let px = local.size().to_px(self.px);
|
||||
@@ -208,6 +209,7 @@ impl<'a> Painter<'a> {
|
||||
place,
|
||||
offer_place: place,
|
||||
narrow,
|
||||
re_asked,
|
||||
px,
|
||||
},
|
||||
None,
|
||||
|
||||
Reference in new issue
Block a user