From: Robin Dunn Date: Fri, 13 Jan 2006 23:21:57 +0000 (+0000) Subject: Only update the size if the parent is a frame and the frame is X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b93328d84228c097e125b0082b486da2aa0d1c22 Only update the size if the parent is a frame and the frame is managing the size of this toolbar, otherwise assume that something else (like a sizer) is managing the layout of this toolbar and leave it alone. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/tbar95.cpp b/src/msw/tbar95.cpp index f98b8c45d6..1b69f1db05 100644 --- a/src/msw/tbar95.cpp +++ b/src/msw/tbar95.cpp @@ -1231,13 +1231,19 @@ wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const void wxToolBar::UpdateSize() { - // the toolbar size changed - ::SendMessage(GetHwnd(), TB_AUTOSIZE, 0, 0); + // In case Realize is called after the initial display (IOW the programmer + // may have rebuilt the toolbar) give the frame the option of resizing the + // toolbar to full width again, but only if the parent is a frame and the + // toolbar is managed by the frame. Otherwise assume that some other + // layout mechanism is controlling the toolbar size and leave it alone. - // we must also refresh the frame after the toolbar size (possibly) changed wxFrame *frame = wxDynamicCast(GetParent(), wxFrame); - if ( frame ) + if ( frame && frame->GetToolBar() == this ) + { + // the toolbar size changed + ::SendMessage(GetHwnd(), TB_AUTOSIZE, 0, 0); frame->SendSizeEvent(); + } } // ----------------------------------------------------------------------------