Skip to content

Commit

Permalink
Don't persist Area state (#4577)
Browse files Browse the repository at this point in the history
If you change your code for what is contained in a menu, tooltips,
combobox etc, it is helpful if egui will recompute the size of that Area
next frame. Now it will!

The user-chosen size of a `Window` is still persisted via other means.
  • Loading branch information
emilk authored May 29, 2024
1 parent c7cb524 commit 66f40de
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
6 changes: 5 additions & 1 deletion crates/egui/src/containers/area.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ use crate::*;
///
/// Areas back [`crate::Window`]s and other floating containers,
/// like tooltips and the popups of [`crate::ComboBox`].
///
/// Area state is intentionally NOT persisted between sessions,
/// so that a bad tooltip or menu size won't be remembered forever.
/// A resizable [`Window`] remembers the size the user picked using
/// the state in the [`Resize`] container.
#[derive(Clone, Copy, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct AreaState {
/// Last known position of the pivot.
pub pivot_pos: Pos2,
Expand Down
3 changes: 3 additions & 0 deletions crates/egui/src/memory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -934,6 +934,9 @@ impl Memory {
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[cfg_attr(feature = "serde", serde(default))]
pub struct Areas {
/// Area state is intentionally NOT persisted between sessions,
/// so that a bad tooltip or menu size won't be remembered forever.
#[cfg_attr(feature = "serde", serde(skip))]
areas: IdMap<area::AreaState>,

/// Back-to-front. Top is last.
Expand Down

0 comments on commit 66f40de

Please sign in to comment.