]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/menu.cpp
set listview extended styles after switching to report view and not only when creatin...
[wxWidgets.git] / src / gtk / menu.cpp
index 71dc66a136aaf990bd7c2dcf2112ba0927f48a33..2e2e0fda3fdff9f54bd58fb63f50e37215d8c2d6 100644 (file)
@@ -971,7 +971,8 @@ void wxMenu::Init()
     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;
 
@@ -1000,7 +1001,7 @@ wxMenu::~wxMenu()
    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
@@ -1008,13 +1009,6 @@ wxMenu::~wxMenu()
        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)
@@ -1054,6 +1048,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
     if ( mitem->IsSeparator() )
     {
         menuItem = gtk_separator_menu_item_new();
+        m_prevRadio = NULL;
     }
     else if ( mitem->GetBitmap().Ok() ||
                 (mitem->GetKind() == wxITEM_NORMAL && isstock) )