summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-10-12 23:21:09 +0200
committerCarl Hetherington <cth@carlh.net>2022-10-14 11:41:18 +0200
commitd85bd416c6267e9c86948b9b5f2e5dba5e67f755 (patch)
treee60c0ada656c185eef9f581dbc9682fb244ebe57 /src/wx
parentdeb61d087799d18cce97b1f0f99fe036d2214a42 (diff)
Save and restore sash positions in the main DoM.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/content_panel.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc
index df6308bea..cadf3682a 100644
--- a/src/wx/content_panel.cc
+++ b/src/wx/content_panel.cc
@@ -90,22 +90,26 @@ public:
bool OnSashPositionChange(int new_position) override
{
/* Try to stop the top bit of the splitter getting so small that buttons disappear */
- return new_position > 220;
+ auto const ok = new_position > 220;
+ if (ok) {
+ Config::instance()->set_main_content_divider_sash_position(new_position);
+ }
+ return ok;
}
void first_shown(wxWindow* top, wxWindow* bottom)
{
int const sn = wxDisplay::GetFromWindow(this);
+ /* Fallback for when GetFromWindow fails for reasons that aren't clear */
+ int pos = -600;
if (sn >= 0) {
wxRect const screen = wxDisplay(sn).GetClientArea();
/* This is a hack to try and make the content notebook a sensible size; large on big displays but small
enough on small displays to leave space for the content area.
*/
- SplitHorizontally(top, bottom, screen.height > 800 ? -600 : -_top_panel_minimum_size);
- } else {
- /* Fallback for when GetFromWindow fails for reasons that aren't clear */
- SplitHorizontally(top, bottom, -600);
+ pos = screen.height > 800 ? -600 : -_top_panel_minimum_size;
}
+ SplitHorizontally(top, bottom, Config::instance()->main_content_divider_sash_position().get_value_or(pos));
_first_shown = true;
}
@@ -117,7 +121,7 @@ private:
/* The window is now fairly big but the top panel is small; this happens when the DCP-o-matic window
* is shrunk and then made larger again. Try to set a sensible top panel size in this case (#1839).
*/
- SetSashPosition(_top_panel_minimum_size);
+ SetSashPosition(Config::instance()->main_content_divider_sash_position().get_value_or(_top_panel_minimum_size));
}
ev.Skip ();