X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4fcad4fb6de3ff496673fd0fcc5411d8df1d0b3e..ddc8faa9e1f9d7dc99ef11e2294ad33915092024:/src/gtk/menu.cpp diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index b04089376b..54856e2c7d 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -70,6 +70,7 @@ wxMenuBar::~wxMenuBar() GtkWidget* widget = m_widget; m_focusWidget = m_widget = NULL; + GTKDisconnect(widget); g_object_unref(widget); } } @@ -748,7 +749,8 @@ wxMenu::~wxMenu() // Destroying a menu generates a "hide" signal even if it's not shown // currently, so disconnect it to avoid dummy wxEVT_MENU_CLOSE events // generation. - g_signal_handlers_disconnect_by_func(m_menu, (gpointer)menu_hide, this); + g_signal_handlers_disconnect_matched(m_menu, + GSignalMatchType(G_SIGNAL_MATCH_DATA), 0, 0, NULL, NULL, this); // see wxMenu::Init g_object_unref(m_menu); @@ -911,6 +913,10 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item) return NULL; GtkWidget * const mitem = item->GetMenuItem(); + + g_signal_handlers_disconnect_matched(mitem, + GSignalMatchType(G_SIGNAL_MATCH_DATA), 0, 0, NULL, NULL, item); + #ifdef __WXGTK3__ gtk_menu_item_set_submenu(GTK_MENU_ITEM(mitem), NULL); #else