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
This commit is contained in:
@@ -878,7 +878,21 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
GtkWidget * const mitem = item->GetMenuItem();
|
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);
|
gtk_widget_destroy(mitem);
|
||||||
item->SetMenuItem(NULL);
|
item->SetMenuItem(NULL);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user