Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions crates/egui/src/containers/panel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -289,12 +289,15 @@ impl SidePanel {
panel_ui.set_clip_rect(panel_rect); // If we overflow, don't do so visibly (#4475)

let frame = frame.unwrap_or_else(|| Frame::side_top_panel(ui.style()));
let inner_response = frame.show(&mut panel_ui, |ui| {
let mut inner_response = frame.show(&mut panel_ui, |ui| {
ui.set_min_height(ui.max_rect().height()); // Make sure the frame fills the full height
ui.set_min_width((width_range.min - frame.inner_margin.sum().x).at_least(0.0));
add_contents(ui)
});

inner_response.response.rect = inner_response.response.rect.intersect(panel_rect);
inner_response.response.interact_rect =
inner_response.response.interact_rect.intersect(panel_rect);
let rect = inner_response.response.rect;

{
Expand Down Expand Up @@ -391,7 +394,7 @@ impl SidePanel {
panel_ui.set_clip_rect(ctx.screen_rect());

let inner_response = self.show_inside_dyn(&mut panel_ui, add_contents);
let rect = inner_response.response.rect;
let rect = inner_response.response.rect.intersect(available_rect);

match side {
Side::Left => ctx.pass_state_mut(|state| {
Expand Down Expand Up @@ -785,12 +788,15 @@ impl TopBottomPanel {
panel_ui.expand_to_include_rect(panel_rect);
panel_ui.set_clip_rect(panel_rect); // If we overflow, don't do so visibly (#4475)

let inner_response = frame.show(&mut panel_ui, |ui| {
let mut inner_response = frame.show(&mut panel_ui, |ui| {
ui.set_min_width(ui.max_rect().width()); // Make the frame fill full width
ui.set_min_height((height_range.min - frame.inner_margin.sum().y).at_least(0.0));
add_contents(ui)
});

inner_response.response.rect = inner_response.response.rect.intersect(panel_rect);
inner_response.response.interact_rect =
inner_response.response.interact_rect.intersect(panel_rect);
let rect = inner_response.response.rect;

{
Expand Down Expand Up @@ -889,7 +895,7 @@ impl TopBottomPanel {
panel_ui.set_clip_rect(ctx.screen_rect());

let inner_response = self.show_inside_dyn(&mut panel_ui, add_contents);
let rect = inner_response.response.rect;
let rect = inner_response.response.rect.intersect(available_rect);

match side {
TopBottomSide::Top => {
Expand Down