Skip to content

Commit

Permalink
Remember to call ui.register_rect for better debug (#5130)
Browse files Browse the repository at this point in the history
  • Loading branch information
emilk committed Sep 19, 2024
1 parent b178424 commit e0f0b7f
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion crates/egui/src/callstack.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub fn capture() -> String {
"<F as egui::widgets::Widget>",
"egui_plot::",
"egui_extras::",
"core::ptr::drop_in_place<egui::ui::Ui>::",
"core::ptr::drop_in_place<egui::ui::Ui>",
"eframe::",
"core::ops::function::FnOnce::call_once",
"<alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once",
Expand Down
5 changes: 3 additions & 2 deletions crates/egui/src/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1240,7 +1240,6 @@ impl Ui {
/// Ignore the layout of the [`Ui`]: just put my widget here!
/// The layout cursor will advance to past this `rect`.
pub fn allocate_rect(&mut self, rect: Rect, sense: Sense) -> Response {
register_rect(self, rect);
let id = self.advance_cursor_after_rect(rect);
self.interact(rect, id, sense)
}
Expand All @@ -1250,6 +1249,7 @@ impl Ui {
debug_assert!(!rect.any_nan());
let item_spacing = self.spacing().item_spacing;
self.placer.advance_after_rects(rect, rect, item_spacing);
register_rect(self, rect);

let id = Id::new(self.next_auto_id_salt);
self.next_auto_id_salt = self.next_auto_id_salt.wrapping_add(1);
Expand Down Expand Up @@ -1363,6 +1363,7 @@ impl Ui {
let rect = child_ui.min_rect();
let item_spacing = self.spacing().item_spacing;
self.placer.advance_after_rects(rect, rect, item_spacing);
register_rect(self, rect);
let response = self.interact(rect, child_ui.id, Sense::hover());
InnerResponse::new(inner, response)
}
Expand Down Expand Up @@ -2246,7 +2247,7 @@ impl Ui {
self.next_auto_id_salt = next_auto_id_salt; // HACK: we want `scope` to only increment this once, so that `ui.scope` is equivalent to `ui.allocate_space`.
let ret = add_contents(&mut child_ui);
let response = child_ui.remember_min_rect();
self.allocate_rect(child_ui.min_rect(), Sense::hover());
self.advance_cursor_after_rect(child_ui.min_rect());
InnerResponse::new(ret, response)
}

Expand Down

0 comments on commit e0f0b7f

Please sign in to comment.