From 2b7c7464ada01e50d37a43eb818ba2dd541a26fe Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 27 Apr 2014 22:41:45 +0000 Subject: [PATCH] Fix wrong wxStatusBar height in wxMSW in some circumstances. Creating the status bar before the menu bar but associating it with the frame after creating the menu bar resulted in a status bar of completely wrong height. Fix this by enforcing the default height on the status bar when it's attached to the frame. Closes #10956. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/frame.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 8c1b178657..113420452e 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -286,6 +286,13 @@ void wxFrame::PositionStatusBar() int w, h; GetClientSize(&w, &h); + // Resize the status bar to its default height, as it could have been set + // to a wrong value before by WM_SIZE sent during the frame creation and + // our status bars preserve their programmatically set size to avoid being + // resized by DefWindowProc() to the full window width, so if we didn't do + // this here, the status bar would retain the possibly wrong current height. + m_frameStatusBar->SetSize(wxDefaultSize, wxSIZE_AUTO_HEIGHT); + int sw, sh; m_frameStatusBar->GetSize(&sw, &sh);