From: Václav Slavík Date: Mon, 16 Aug 2004 13:13:30 +0000 (+0000) Subject: fixed handlers registration in DoPopupMenu (patch 1009949) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/098937b044a9c92942c73ca179bc020ddc286a1e fixed handlers registration in DoPopupMenu (patch 1009949) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28816 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 8f3eadcf97..a461e3b7e8 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -4304,10 +4304,10 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) bool is_waiting = true; - gtk_signal_connect( GTK_OBJECT(menu->m_menu), - "hide", - GTK_SIGNAL_FUNC(gtk_pop_hide_callback), - (gpointer)&is_waiting ); + gulong handler = gtk_signal_connect( GTK_OBJECT(menu->m_menu), + "hide", + GTK_SIGNAL_FUNC(gtk_pop_hide_callback), + (gpointer)&is_waiting ); wxPoint pos; gpointer userdata; @@ -4344,6 +4344,8 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) gtk_main_iteration(); } + gtk_signal_disconnect(GTK_OBJECT(menu->m_menu), handler); + return true; } diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 8f3eadcf97..a461e3b7e8 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -4304,10 +4304,10 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) bool is_waiting = true; - gtk_signal_connect( GTK_OBJECT(menu->m_menu), - "hide", - GTK_SIGNAL_FUNC(gtk_pop_hide_callback), - (gpointer)&is_waiting ); + gulong handler = gtk_signal_connect( GTK_OBJECT(menu->m_menu), + "hide", + GTK_SIGNAL_FUNC(gtk_pop_hide_callback), + (gpointer)&is_waiting ); wxPoint pos; gpointer userdata; @@ -4344,6 +4344,8 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) gtk_main_iteration(); } + gtk_signal_disconnect(GTK_OBJECT(menu->m_menu), handler); + return true; }