From 0ee7565e195912bf72f20bf8e85754fe84986d2d Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sun, 14 Feb 2016 13:23:49 -0800 Subject: [PATCH] Fix restoring TLW size with wxPersistenceManager on wxGTK ...when window decoration sizes are not known. See #17228 --- include/wx/persist/toplevel.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/wx/persist/toplevel.h b/include/wx/persist/toplevel.h index c221ed3392..722a66af59 100644 --- a/include/wx/persist/toplevel.h +++ b/include/wx/persist/toplevel.h @@ -67,6 +67,12 @@ public: SaveValue(wxPERSIST_TLW_MAXIMIZED, tlw->IsMaximized()); SaveValue(wxPERSIST_TLW_ICONIZED, tlw->IsIconized()); +#ifdef __WXGTK20__ + SaveValue("decor_l", tlw->m_decorSize.left); + SaveValue("decor_r", tlw->m_decorSize.right); + SaveValue("decor_t", tlw->m_decorSize.top); + SaveValue("decor_b", tlw->m_decorSize.bottom); +#endif } virtual bool Restore() wxOVERRIDE @@ -81,6 +87,17 @@ public: RestoreValue(wxPERSIST_TLW_Y, &y); const bool hasSize = RestoreValue(wxPERSIST_TLW_W, &w) && RestoreValue(wxPERSIST_TLW_H, &h); +#ifdef __WXGTK20__ + wxTopLevelWindowGTK::DecorSize decorSize; + if (tlw->m_decorSize.top == 0 && + RestoreValue("decor_l", &decorSize.left) && + RestoreValue("decor_r", &decorSize.right) && + RestoreValue("decor_t", &decorSize.top) && + RestoreValue("decor_b", &decorSize.bottom)) + { + tlw->m_decorSize = decorSize; + } +#endif if ( hasPos ) {