fix reparenting a control into wxToolBar

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2007-06-20 17:49:13 +00:00
parent a2a50c2dfe
commit 065ada7625

View File

@@ -273,9 +273,11 @@ void gtktoolwidget_size_callback( GtkWidget *widget,
//-----------------------------------------------------------------------------
static void wxInsertChildInToolBar( wxToolBar* WXUNUSED(parent),
wxWindow* WXUNUSED(child) )
wxWindow* child)
{
// we don't do anything here
// Child widget will be inserted into GtkToolbar by DoInsertTool. Ref it
// here so reparenting into wxToolBar doesn't delete it.
g_object_ref(child->m_widget);
}
// ----------------------------------------------------------------------------
@@ -509,7 +511,9 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
(const char *) NULL,
posGtk
);
// release reference obtained by wxInsertChildInToolBar
g_object_unref(tool->GetControl()->m_widget);
// connect after in order to correct size_allocate events
g_signal_connect_after (tool->GetControl()->m_widget, "size_allocate",
G_CALLBACK (gtktoolwidget_size_callback), tool->GetControl());