diff --git a/docs/changes.txt b/docs/changes.txt index 9839b6949c..6ebbfa73e2 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -616,6 +616,7 @@ wxMSW: - Fix best height of wxSlider with labels but without ticks (Artur Wieczorek). - Fix initial text value of wxSpinCtrlDouble (Laurent Poujoulat). - Fix best size calculation for bitmaps with buttons (Artur Wieczorek). +- Fix flicker when resizing windows with status bar (Artur Wieczorek). - Fix size of the icon returned from wxFSVolume::GetIcon() (troelsk). - Fix autosize after expanding/collapsing items in wxDataViewCtrl (ciglesias). - Fix inserting tools removed from wxToolBar back into it (sbrowne). diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 113420452e..6afeb7794a 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -286,16 +286,6 @@ 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); - int x = 0; #if wxUSE_TOOLBAR wxToolBar * const toolbar = GetToolBar(); @@ -319,6 +309,16 @@ void wxFrame::PositionStatusBar() //else: no adjustments necessary for the toolbar on top #endif // wxUSE_TOOLBAR + // 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(x, h, w, wxDefaultCoord, wxSIZE_AUTO_HEIGHT); + + int sw, sh; + m_frameStatusBar->GetSize(&sw, &sh); + // Since we wish the status bar to be directly under the client area, // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. m_frameStatusBar->SetSize(x, h, w, sh);