From e98c065545958abd03fd22596eb477eee062963c Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 21 Jun 2008 15:03:44 +0000 Subject: [PATCH] Use wxMenuBase:SendEvent() to emit event, shoudl also fix #801: Menu cmd events: Inconsistent GetEventObject() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/menu.cpp | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index 634dae20a1..782c17ce7b 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -488,34 +488,8 @@ static void menuitem_activate(GtkWidget*, wxMenuItem* item) } } - - // Is this menu on a menubar? (possibly nested) wxMenu* menu = item->GetMenu(); - wxFrame* frame = NULL; - if(menu->IsAttached()) - frame = menu->GetMenuBar()->GetFrame(); - - // FIXME: why do we have to call wxFrame::GetEventHandler() directly here? - // normally wxMenu::SendEvent() should be enough, if it doesn't work - // in wxGTK then we have a bug in wxMenu::GetInvokingWindow() which - // should be fixed instead of working around it here... - if (frame) - { - // If it is attached then let the frame send the event. - // Don't call frame->ProcessCommand(id) because it toggles - // checkable items and we've already done that above. - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); - commandEvent.SetEventObject(frame); - if (item->IsCheckable()) - commandEvent.SetInt(item->IsChecked()); - - frame->HandleWindowEvent(commandEvent); - } - else - { - // otherwise let the menu have it - menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1); - } + menu->SendEvent(id, item->IsCheckable() ? item->IsChecked() : -1); } } -- 2.45.2