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:
@@ -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",
|
||||||
|
Reference in New Issue
Block a user