]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't use gtk_menu_item_set_submenu() with NULL menu with GTK+ < 2.12.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 Dec 2011 23:21:06 +0000 (23:21 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 Dec 2011 23:21:06 +0000 (23:21 +0000)
In GTK+ 2.10 and earlier gtk_menu_item_remove_submenu() had to be used to
remove the items submenu as gtk_menu_item_set_submenu() gave errors when
passed NULL submenu, so call the old function when using old GTK+ version.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/menu.cpp

index ae2d4df83251e92bc0204b262bad096c996e3284..8c6cf5ea49e4f114d3d394c7690cd4d6a281dfc3 100644 (file)
@@ -878,7 +878,21 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
         return NULL;
 
     GtkWidget * const mitem = item->GetMenuItem();
-    gtk_menu_item_set_submenu(GTK_MENU_ITEM(mitem), NULL);
+    if (!gtk_check_version(2,12,0))
+    {
+        // gtk_menu_item_remove_submenu() is deprecated since 2.12, but
+        // gtk_menu_item_set_submenu() can now be used with NULL submenu now so
+        // just do use it.
+        gtk_menu_item_set_submenu(GTK_MENU_ITEM(mitem), NULL);
+    }
+    else // GTK+ < 2.12
+    {
+        // In 2.10 calling gtk_menu_item_set_submenu() with NULL submenu
+        // results in critical GTK+ error messages so use the old function
+        // instead.
+        gtk_menu_item_remove_submenu(GTK_MENU_ITEM(mitem));
+    }
+
     gtk_widget_destroy(mitem);
     item->SetMenuItem(NULL);