]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/menu.cpp
compilation fix after last check in
[wxWidgets.git] / src / gtk / menu.cpp
index a44c91e123ea73dc6d3beddc474e5bd16d734bb0..a287ee3439d0e3c3ed34f6f085ee0016528e74e1 100644 (file)
@@ -7,11 +7,14 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation "menu.h"
-#pragma implementation "menuitem.h"
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+    #pragma implementation "menu.h"
+    #pragma implementation "menuitem.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
 #include "wx/log.h"
 #include "wx/intl.h"
 #include "wx/app.h"
@@ -729,6 +732,10 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
         pm = pm->GetParent();
     }
 
+    // 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.
@@ -738,6 +745,7 @@ static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu )
         commandEvent.SetEventObject(frame);
         if (item->IsCheckable())
             commandEvent.SetInt(item->IsChecked());
+        commandEvent.SetEventObject(menu);
 
         frame->GetEventHandler()->ProcessEvent(commandEvent);
     }