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
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user