5 Commits

Author SHA1 Message Date
landon be49729af2 fix: Cap row_width to prevent panel from expanding infinitely
Capped row_width at 580.0 to prevent the content from pushing the
panel wider than the user intends, breaking the content-width loop.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-16 20:14:39 -05:00
landon 1374af8439 fix: Use width_range(260-600) as default, remove explicit default_width
This uses the lower bound of the range as the default width, which should
work better with the resizable panel.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-16 20:09:33 -05:00
landon a2f059652d Revert: Set file list width range to 160-600 (was INFINITY)
The INFINITY upper bound caused the panel to expand to fill the window.
Changed back to a reasonable max of 600.0 pixels.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-16 20:08:36 -05:00
landon 2ab78acaa6 fix: Allow file list panel to be resized beyond 460px
Changed width_range from 160.0..=460.0 to 160.0..=f32::INFINITY to allow
the user to make the file list panel as wide as they want without it
snapping back to the maximum width.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-16 20:02:41 -05:00
landon 43279810a5 fix: Change file list panel from show_animated to show
show_animated may have issues with width persistence when resizing.
Using show() instead should allow the panel to remember its width.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-16 19:01:38 -05:00
+4 -4
View File
@@ -166,11 +166,10 @@ impl App {
let show_files = self.config.show_file_panel;
egui::SidePanel::left("files")
.resizable(true)
.default_width(260.0)
// A hard ceiling: the panel is sized from its content, so any row
// that asks for more width than there is would otherwise push it
// wider every frame.
.width_range(160.0..=460.0)
// wider every frame. Default width is set via the range's lower bound.
.width_range(260.0..=600.0)
.show_animated(ctx, show_files, |ui| {
// The default theme renders unselected list rows fairly dim; bump
// the widget text colours so file names stay legible (especially in
@@ -251,7 +250,8 @@ impl App {
// Measured once, from the panel rather than from the scrolled
// content: reading `available_width()` inside a row makes the
// content's width depend on the content's width.
let row_width = ui.available_width();
// Cap the width to prevent the panel from expanding infinitely.
let row_width = ui.available_width().min(580.0);
let nested = rows.iter().any(|r| r.depth > 0);
egui::ScrollArea::vertical()