diff --git a/crates/egui/src/containers/popup.rs b/crates/egui/src/containers/popup.rs index a643bffdb..e20285913 100644 --- a/crates/egui/src/containers/popup.rs +++ b/crates/egui/src/containers/popup.rs @@ -7,7 +7,7 @@ use crate::{ Sense, Ui, UiKind, UiStackInfo, containers::menu::{MenuConfig, MenuState, menu_style}, style::StyleModifier, - widget_style::{Classes, HasClasses as _, MENU_CLASS, PopupStyle}, + widget_style::{Classes, HasClasses, MENU_CLASS, PopupStyle}, }; /// What should we anchor the popup to? @@ -186,6 +186,17 @@ pub struct Popup<'a> { layout: Layout, frame: Option, style: StyleModifier, + classes: Classes, +} + +impl HasClasses for Popup<'_> { + fn classes(&self) -> &Classes { + &self.classes + } + + fn classes_mut(&mut self) -> &mut Classes { + &mut self.classes + } } impl<'a> Popup<'a> { @@ -210,6 +221,7 @@ impl<'a> Popup<'a> { layout: Layout::default(), frame: None, style: StyleModifier::default(), + classes: Classes::default(), } } @@ -578,6 +590,7 @@ impl<'a> Popup<'a> { layout, frame, style, + mut classes, } = self; if kind != PopupKind::Tooltip { @@ -594,7 +607,7 @@ impl<'a> Popup<'a> { let (pivot, anchor) = best_align.pivot_pos(&anchor_rect, gap); - let classes = Classes::default().with_class_if(MENU_CLASS, kind == PopupKind::Menu); + classes.add_class_if(MENU_CLASS, kind == PopupKind::Menu); let mut area = Area::new(id) .with_classes(classes.clone())