From 5292f77ab43e4916eded7fc5440b40fb19697dbc Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 6 Jul 2017 15:22:10 +0200 Subject: [PATCH] Check for window best size in wxPersistentTLW Ensure that the restored size is at least equal to the best size of the window to avoid cutting off parts of it in (a common) case when a newer version of the program adds new UI elements, thus increasing the window best size and possibly making the previously stored size too small. --- docs/changes.txt | 1 + include/wx/persist/toplevel.h | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index b86eb25e8f..6a35852c93 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -144,6 +144,7 @@ All (GUI): - Handle wxST_ELLIPSIZE_XXX styles in wxStaticText XRC handler (tm). - Add support for bitmaps to wxToggleButton XRC handler (tm). - Fix wxGCDC::SetDeviceClippingRegion(). +- Never restore size smaller than the best one in wxPersistentTLW. wxGTK: diff --git a/include/wx/persist/toplevel.h b/include/wx/persist/toplevel.h index 31912b3801..07c1d61ae2 100644 --- a/include/wx/persist/toplevel.h +++ b/include/wx/persist/toplevel.h @@ -116,7 +116,14 @@ public: } if ( hasSize ) + { + // a previous version of the program could have saved the window + // size which used to be big enough, but which is not big enough + // any more for the new version, so check that the size we restore + // doesn't cut off parts of the window + size.IncTo(tlw->GetBestSize()); tlw->SetSize(size); + } // note that the window can be both maximized and iconized bool maximized;