From a9039a8eea81784c03b6deeb635ea685070f884f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Wed, 3 Jun 2026 21:55:44 +0200 Subject: [PATCH] =?UTF-8?q?wx:=20fix=20layout=20=E2=80=94=20log=20adapts?= =?UTF-8?q?=20and=20stays=20at=20the=20bottom=20on=20resize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frame had no sizer; it relied on the implicit single-child fill, which didn't reliably resize the panel, so the panel's vertical sizer never redistributed and the log kept its size when the window grew. Add a frame sizer holding the panel at proportion 1 + wxEXPAND, so a resize re-lays-out the panel and the log (1/3) tracks the window. Co-Authored-By: Claude Opus 4.8 --- src/frontends/wx/wx_frame.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/frontends/wx/wx_frame.cpp b/src/frontends/wx/wx_frame.cpp index 88689e7..f634542 100644 --- a/src/frontends/wx/wx_frame.cpp +++ b/src/frontends/wx/wx_frame.cpp @@ -170,6 +170,13 @@ EssimFrame::EssimFrame(WxFrontend &fe) root->Add(log_, 1, wxEXPAND | wxALL, 4); panel->SetSizer(root); + // Drive the panel from a frame sizer so it fills the client area and + // re-lays-out on every resize (the implicit single-child fill is not + // reliable here — without this the log keeps its size when the window grows). + auto *frame_sizer = new wxBoxSizer(wxVERTICAL); + frame_sizer->Add(panel, 1, wxEXPAND); + SetSizer(frame_sizer); + Bind(wxEVT_MENU, &EssimFrame::OnLoad, this, ID_LOAD); Bind(wxEVT_MENU, &EssimFrame::OnRestore, this, ID_RESTORE); Bind(wxEVT_MENU, &EssimFrame::OnSave, this, ID_SAVE);