From b4d6a7cd8973c779ee26caad85d7b60c01aef3bc Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 5 Jun 2024 12:17:08 +0200 Subject: [PATCH] `Grid`: set the `sizing_pass` flag during the initial sizing pass (#4612) * Part of https://github.com/emilk/egui/issues/4535 This should improve the auto-sizing of columns when nesting expanding widgets (e.g. `Separator`), or centered or justified layouts. --- crates/egui/src/grid.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/egui/src/grid.rs b/crates/egui/src/grid.rs index b888f756b5e..2466c41e9b7 100644 --- a/crates/egui/src/grid.rs +++ b/crates/egui/src/grid.rs @@ -426,7 +426,10 @@ impl Grid { // which we do here: let max_rect = ui.cursor().intersect(ui.max_rect()); ui.allocate_ui_at_rect(max_rect, |ui| { - ui.set_visible(prev_state.is_some()); // Avoid visible first-frame jitter + if prev_state.is_none() { + // Hide the ui this frame, and make things as narrow as possible. + ui.set_sizing_pass(); + } ui.horizontal(|ui| { let is_color = color_picker.is_some(); let mut grid = GridLayout {