egui: Fix custom `Window` `Frame`s (#4009)
Fix #4002 
This commit is contained in:
parent
12b5d51325
commit
cd34a47dd6
|
|
@ -390,11 +390,13 @@ impl<'open> Window<'open> {
|
|||
with_title_bar,
|
||||
} = self;
|
||||
|
||||
let frame = frame.unwrap_or_else(|| Frame::window(&ctx.style()));
|
||||
let header_color =
|
||||
frame.map_or_else(|| ctx.style().visuals.widgets.open.weak_bg_fill, |f| f.fill);
|
||||
let window_frame = frame.unwrap_or_else(|| Frame::window(&ctx.style()));
|
||||
|
||||
let is_explicitly_closed = matches!(open, Some(false));
|
||||
let is_open = !is_explicitly_closed || ctx.memory(|mem| mem.everything_is_visible());
|
||||
area.show_open_close_animation(ctx, &frame, is_open);
|
||||
area.show_open_close_animation(ctx, &window_frame, is_open);
|
||||
|
||||
if !is_open {
|
||||
return None;
|
||||
|
|
@ -419,7 +421,7 @@ impl<'open> Window<'open> {
|
|||
// Calculate roughly how much larger the window size is compared to the inner rect
|
||||
let (title_bar_height, title_content_spacing) = if with_title_bar {
|
||||
let style = ctx.style();
|
||||
let window_margin = style.spacing.window_margin;
|
||||
let window_margin = window_frame.inner_margin;
|
||||
let spacing = window_margin.top + window_margin.bottom;
|
||||
let height = ctx.fonts(|f| title.font_height(f, &style)) + spacing;
|
||||
(height, spacing)
|
||||
|
|
@ -438,8 +440,8 @@ impl<'open> Window<'open> {
|
|||
last_frame_outer_rect,
|
||||
)
|
||||
.and_then(|window_interaction| {
|
||||
let margins = frame.outer_margin.sum()
|
||||
+ frame.inner_margin.sum()
|
||||
let margins = window_frame.outer_margin.sum()
|
||||
+ window_frame.inner_margin.sum()
|
||||
+ vec2(0.0, title_bar_height);
|
||||
|
||||
interact(
|
||||
|
|
@ -460,8 +462,8 @@ impl<'open> Window<'open> {
|
|||
|
||||
let content_inner = {
|
||||
// BEGIN FRAME --------------------------------
|
||||
let frame_stroke = frame.stroke;
|
||||
let mut frame = frame.begin(&mut area_content_ui);
|
||||
let frame_stroke = window_frame.stroke;
|
||||
let mut frame = window_frame.begin(&mut area_content_ui);
|
||||
|
||||
let show_close_button = open.is_some();
|
||||
|
||||
|
|
@ -518,12 +520,12 @@ impl<'open> Window<'open> {
|
|||
y: title_bar_height,
|
||||
},
|
||||
);
|
||||
let mut round = area_content_ui.visuals().window_rounding;
|
||||
|
||||
let mut round = window_frame.rounding;
|
||||
if !is_collapsed {
|
||||
round.se = 0.0;
|
||||
round.sw = 0.0;
|
||||
}
|
||||
let header_color = area_content_ui.visuals().widgets.open.weak_bg_fill;
|
||||
|
||||
area_content_ui.painter().set(
|
||||
*where_to_put_header_background,
|
||||
|
|
|
|||
Loading…
Reference in New Issue