m_menu = gtk_menu_new();
// NB: keep reference to the menu so that it is not destroyed behind
// our back by GTK+ e.g. when it is removed from menubar:
- gtk_widget_ref(m_menu);
+ g_object_ref(m_menu);
+ gtk_object_sink(GTK_OBJECT(m_menu));
m_owner = (GtkWidget*) NULL;
if ( GTK_IS_WIDGET( m_menu ))
{
// see wxMenu::Init
- gtk_widget_unref( m_menu );
+ g_object_unref(m_menu);
g_object_unref( m_accel );
// if the menu is inserted in another menu at this time, there was
if ( m_owner )
gtk_widget_destroy( m_menu );
}
-
- // This must come after we release GTK resources above. Otherwise, GTK will
- // give warnings/errors when attempting to free accelerator resources from
- // child items that just were destroyed (the m_menu widget can contain
- // references to accelerators in child items. Problem detected when removing
- // a menu from a wxMenuBar, and the removed menu had submenus with accelerators.)
- WX_CLEAR_LIST(wxMenuItemList, m_items);
}
void wxMenu::SetLayoutDirection(const wxLayoutDirection dir)
if ( mitem->IsSeparator() )
{
menuItem = gtk_separator_menu_item_new();
+ m_prevRadio = NULL;
}
else if ( mitem->GetBitmap().Ok() ||
(mitem->GetKind() == wxITEM_NORMAL && isstock) )