From 3c39dee7f0efc4f1527ec05e604693b5ede95a61 Mon Sep 17 00:00:00 2001 From: lucasmerlin Date: Mon, 16 Jun 2025 10:05:10 +0200 Subject: [PATCH] Fixes after update --- crates/egui/src/atomics/atom_layout.rs | 7 ++- crates/egui_demo_lib/src/demo/popups.rs | 75 +++++++++++++------------ 2 files changed, 42 insertions(+), 40 deletions(-) diff --git a/crates/egui/src/atomics/atom_layout.rs b/crates/egui/src/atomics/atom_layout.rs index a25a4b7c6..008b9cce8 100644 --- a/crates/egui/src/atomics/atom_layout.rs +++ b/crates/egui/src/atomics/atom_layout.rs @@ -255,11 +255,12 @@ impl<'a> AtomLayout<'a> { let desired_size = Vec2::new(desired_width, height); let frame_size = (desired_size + margin.sum()).at_least(min_size); - let (_, rect) = ui.allocate_space(frame_size); + let intrinsic_size = + (Vec2::new(preferred_width, preferred_height) + margin.sum()).at_least(min_size); + let (_, rect) = ui.allocate_space(frame_size, intrinsic_size); let mut response = ui.interact(rect, id, sense); - response.intrinsic_size = - Some((Vec2::new(preferred_width, preferred_height) + margin.sum()).at_least(min_size)); + response.intrinsic_size = Some(intrinsic_size); AllocatedAtomLayout { sized_atoms: sized_items, diff --git a/crates/egui_demo_lib/src/demo/popups.rs b/crates/egui_demo_lib/src/demo/popups.rs index a49fa3e76..2da624411 100644 --- a/crates/egui_demo_lib/src/demo/popups.rs +++ b/crates/egui_demo_lib/src/demo/popups.rs @@ -42,47 +42,48 @@ impl PopupsDemo { let _ = ui.button("Item"); ui.menu_button("Recursive", |ui| self.nested_menus(ui)); - // if ui.button(if *checked { "short" } else { "Very long text for this item that should be wrapped" }).clicked() { - // *checked = !*checked; - // } - ui.checkbox( - checked, - if *checked { - "short" - } else { - "Very long text for this item that should be wrapped" - }, - ); - }); - ui.menu_button("SubMenu", |ui| { - if ui.button("Open…").clicked() { - ui.close(); - } + // if ui.button(if self.checked { "short" } else { "Very long text for this item that should be wrapped" }).clicked() { + // self.checked = !self.checked; + // } + let checked = self.checked; + ui.checkbox( + &mut self.checked, + if checked { + "short" + } else { + "Very long text for this item that should be wrapped" + }, + ); + }); + ui.menu_button("SubMenu", |ui| { + if ui.button("Open…").clicked() { + ui.close(); + } + let _ = ui.button("Item"); + }); let _ = ui.button("Item"); - }); - let _ = ui.button("Item"); - if ui.button("Open…").clicked() { - ui.close(); - } - }); - ui.menu_image_text_button( - include_image!("../../data/icon.png"), - "I have an icon!", - |ui| { - let _ = ui.button("Item1"); - let _ = ui.button("Item2"); - let _ = ui.button("Item3"); - let _ = ui.button("Item4"); if ui.button("Open…").clicked() { ui.close(); } - }, - ); - let _ = ui.button("Very long text for this item that should be wrapped"); - SubMenuButton::new("Always CloseOnClickOutside") - .config(MenuConfig::new().close_behavior(PopupCloseBehavior::CloseOnClickOutside)) - .ui(ui, |ui| { - ui.checkbox(&mut self.checked, "Checkbox"); + }); + ui.menu_image_text_button( + include_image!("../../data/icon.png"), + "I have an icon!", + |ui| { + let _ = ui.button("Item1"); + let _ = ui.button("Item2"); + let _ = ui.button("Item3"); + let _ = ui.button("Item4"); + if ui.button("Open…").clicked() { + ui.close(); + } + }, + ); + let _ = ui.button("Very long text for this item that should be wrapped"); + SubMenuButton::new("Always CloseOnClickOutside") + .config(MenuConfig::new().close_behavior(PopupCloseBehavior::CloseOnClickOutside)) + .ui(ui, |ui| { + ui.checkbox(&mut self.checked, "Checkbox"); // Customized color SubMenuButton let is_bright = self.color.intensity() > 0.5;