fix reparenting a control into wxToolBar

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2007-06-20 17:49:13 +00:00
parent 9b7835a516
commit 4b01ba739a

View File

@@ -363,9 +363,11 @@ void gtktoolwidget_size_callback( GtkWidget *widget,
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static void wxInsertChildInToolBar( wxWindow* WXUNUSED(parent), static void wxInsertChildInToolBar( wxWindow* 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);
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -653,6 +655,8 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
(const char *) NULL, (const char *) NULL,
posGtk posGtk
); );
// release reference obtained by wxInsertChildInToolBar
g_object_unref(tool->GetControl()->m_widget);
// connect after in order to correct size_allocate events // connect after in order to correct size_allocate events
g_signal_connect_after (tool->GetControl()->m_widget, "size_allocate", g_signal_connect_after (tool->GetControl()->m_widget, "size_allocate",