]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/menu.cpp
style creation
[wxWidgets.git] / src / mac / carbon / menu.cpp
index bffd5b416dd92fb29a2bbe110cf8d10587905d42..83d1d2420a8fb755cbdd46668faa76683b7f5b63 100644 (file)
@@ -145,10 +145,14 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
             }
             else
             {
+                // MacOS counts menu items from 1 and inserts after, therefore having the
+                // same effect as wx 0 based and inserting before, we must correct pos
+                // after however for updates to be correct
                 UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos);
+                pos += 1 ;
             }
 
-            SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos+1 , pItem->GetId() ) ;
+            SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos , pItem->GetId() ) ;
             pItem->UpdateItemText() ;
             pItem->UpdateItemBitmap() ;
             pItem->UpdateItemStatus() ;
@@ -445,6 +449,7 @@ auto-merge for MDI in case this will be necessary
 */
 
 wxMenuBar* wxMenuBar::s_macInstalledMenuBar = NULL ;
+wxMenuBar* wxMenuBar::s_macCommonMenuBar = NULL ;
 
 void wxMenuBar::Init()
 {
@@ -481,6 +486,8 @@ wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
 
 wxMenuBar::~wxMenuBar()
 {
+    if (s_macCommonMenuBar == this)
+        s_macCommonMenuBar = NULL;
     if (s_macInstalledMenuBar == this)
     {
         ::ClearMenuBar();
@@ -748,7 +755,7 @@ wxMenu *wxMenuBar::Remove(size_t pos)
         Refresh();
     }
 
-    m_titles.Remove(pos);
+    m_titles.RemoveAt(pos);
 
     return menu;
 }