From 8ed506fa014a75b30696ed5f1ea2d24540eb9199 Mon Sep 17 00:00:00 2001 From: Alex Parlett Date: Fri, 5 Apr 2024 10:40:44 +0100 Subject: [PATCH 1/2] Use the parent_ui for the style of the popup frame --- .gitignore | 1 + crates/egui/src/containers/popup.rs | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index c43b95594e4..7db0b9d06fb 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /.*.json /.vscode /media/* +.idea/ diff --git a/crates/egui/src/containers/popup.rs b/crates/egui/src/containers/popup.rs index 99165149f1d..5a447a7d253 100644 --- a/crates/egui/src/containers/popup.rs +++ b/crates/egui/src/containers/popup.rs @@ -333,13 +333,13 @@ pub fn popup_below_widget( /// # }); /// ``` pub fn popup_above_or_below_widget( - ui: &Ui, + parent_ui: &Ui, popup_id: Id, widget_response: &Response, above_or_below: AboveOrBelow, add_contents: impl FnOnce(&mut Ui) -> R, ) -> Option { - if ui.memory(|mem| mem.is_popup_open(popup_id)) { + if parent_ui.memory(|mem| mem.is_popup_open(popup_id)) { let (pos, pivot) = match above_or_below { AboveOrBelow::Above => (widget_response.rect.left_top(), Align2::LEFT_BOTTOM), AboveOrBelow::Below => (widget_response.rect.left_bottom(), Align2::LEFT_TOP), @@ -351,7 +351,7 @@ pub fn popup_above_or_below_widget( .fixed_pos(pos) .pivot(pivot) .show(ui.ctx(), |ui| { - let frame = Frame::popup(ui.style()); + let frame = Frame::popup(parent_ui.style()); let frame_margin = frame.total_margin(); frame .show(ui, |ui| { @@ -365,8 +365,8 @@ pub fn popup_above_or_below_widget( }) .inner; - if ui.input(|i| i.key_pressed(Key::Escape)) || widget_response.clicked_elsewhere() { - ui.memory_mut(|mem| mem.close_popup()); + if parent_ui.input(|i| i.key_pressed(Key::Escape)) || widget_response.clicked_elsewhere() { + parent_ui.memory_mut(|mem| mem.close_popup()); } Some(inner) } else { From f8c41ef11954aba2c3f9acf1f67e3d332553547a Mon Sep 17 00:00:00 2001 From: Alex Parlett Date: Fri, 5 Apr 2024 10:44:16 +0100 Subject: [PATCH 2/2] Fix missed rename --- crates/egui/src/containers/popup.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/egui/src/containers/popup.rs b/crates/egui/src/containers/popup.rs index 5a447a7d253..9643a8eee31 100644 --- a/crates/egui/src/containers/popup.rs +++ b/crates/egui/src/containers/popup.rs @@ -350,7 +350,7 @@ pub fn popup_above_or_below_widget( .constrain(true) .fixed_pos(pos) .pivot(pivot) - .show(ui.ctx(), |ui| { + .show(parent_ui.ctx(), |ui| { let frame = Frame::popup(parent_ui.style()); let frame_margin = frame.total_margin(); frame