diff --git a/src/wx/guiinit.cpp b/src/wx/guiinit.cpp index 2b024cc0..c3f6da5f 100644 --- a/src/wx/guiinit.cpp +++ b/src/wx/guiinit.cpp @@ -2899,6 +2899,11 @@ bool MainFrame::BindControls() tc = SafeXRCCTRL(d, n); \ tc->SetValidator(wxTextValidator(wxFILTER_NONE, &o)); \ } while (0) +#define getgtc(n, o) \ + do { \ + tc = SafeXRCCTRL(d, n); \ + tc->SetValidator(wxGenericValidator(&o)); \ + } while (0) #ifndef NO_LINK { net_link_handler.dlg = d; @@ -3294,7 +3299,7 @@ bool MainFrame::BindControls() /// Zoom // this was a choice, but I'd rather not have to make an off-by-one // validator just for this, and spinctrl is good enough. - getsc("DefaultScale", gopts.video_scale); + getgtc("DefaultScale", gopts.video_scale); getsc("MaxScale", maxScale); /// Advanced getrbi("OutputSimple", gopts.render_method, RND_SIMPLE); diff --git a/src/wx/panel.cpp b/src/wx/panel.cpp index ebec1255..f70c7d18 100644 --- a/src/wx/panel.cpp +++ b/src/wx/panel.cpp @@ -1041,6 +1041,10 @@ void GameArea::OnIdle(wxIdleEvent& event) if (pointer_blanked) w->SetCursor(wxCursor(wxCURSOR_BLANK)); + + // if user changed Display/Scale config, this needs to run + AdjustMinSize(); + AdjustSize(false); } if (!paused && (!pauseWhenInactive || wxGetApp().frame->HasFocus())) { diff --git a/src/wx/xrc/DisplayConfig.xrc b/src/wx/xrc/DisplayConfig.xrc index 9a5b0a7b..2a6eaa7f 100644 --- a/src/wx/xrc/DisplayConfig.xrc +++ b/src/wx/xrc/DisplayConfig.xrc @@ -106,9 +106,7 @@ 5 - - 1 - 6 + wxALL|wxEXPAND