From: Vadim Zeitlin Date: Wed, 7 Dec 2011 23:21:06 +0000 (+0000) Subject: Don't use gtk_menu_item_set_submenu() with NULL menu with GTK+ < 2.12. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f089d73634361c73ff2e3075f8b3924229b44454 Don't use gtk_menu_item_set_submenu() with NULL menu with GTK+ < 2.12. 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 --- diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index ae2d4df832..8c6cf5ea49 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -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);