]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/menu.cpp
don't use wxVector<wxDataFormat> from wx/clipbrd.h as wxDataFormat definition is...
[wxWidgets.git] / src / gtk / menu.cpp
index e1be8ff88acf4626a545fbfed5f4b0d98c66a594..299de20d547afb18c67a87254faa856881d14696 100644 (file)
@@ -695,6 +695,16 @@ static void menu_hide(GtkWidget*, wxMenu* menu)
 }
 }
 
+// "can_activate_accel" from menu item
+extern "C" {
+static gboolean can_activate_accel(GtkWidget*, guint, wxMenu* menu)
+{
+    menu->UpdateUI();
+    // always allow our "activate" handler to be called
+    return true;
+}
+}
+
 IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
 
 void wxMenu::Init()
@@ -706,7 +716,7 @@ void wxMenu::Init()
     // NB: keep reference to the menu so that it is not destroyed behind
     //     our back by GTK+ e.g. when it is removed from menubar:
     g_object_ref(m_menu);
-    g_object_ref_sink(m_menu);
+    gtk_object_sink(GTK_OBJECT(m_menu));
 
     m_owner = (GtkWidget*) NULL;
 
@@ -832,6 +842,8 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
         }
         else
         {
+            g_signal_connect(menuItem, "can_activate_accel",
+                G_CALLBACK(can_activate_accel), this);
             g_signal_connect (menuItem, "activate",
                               G_CALLBACK(menuitem_activate),
                               mitem);