]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/menu.cpp
another segfault fix
[wxWidgets.git] / src / os2 / menu.cpp
index e93d89adc4053be542bcb81d4aa1cab4a81dde02..a964e5497a3c6019183b0505ebca7ab8db28bd66 100644 (file)
@@ -73,7 +73,7 @@ static wxString TextToLabel(const wxString& rTitle)
 {
     wxString Title;
     const wxChar *pc;
-    for (pc = rTitle; *pc != wxT('\0'); pc++ )
+    for (pc = rTitle.c_str(); *pc != wxT('\0'); pc++ )
     {
         if (*pc == wxT('&') )
         {
@@ -85,10 +85,6 @@ static wxString TextToLabel(const wxString& rTitle)
             else
                 Title << wxT('~');
         }
-//         else if (*pc == wxT('/'))
-//         {
-//             Title << wxT('\\');
-//         }
         else
         {
             if ( *pc == wxT('~') )
@@ -244,7 +240,7 @@ void wxMenu::UpdateAccel(
         if (pAccel)
             m_vAccels[n] = pAccel;
         else
-            m_vAccels.Remove(n);
+            m_vAccels.RemoveAt(n);
     }
 
     if (IsAttached())
@@ -448,7 +444,7 @@ wxMenuItem* wxMenu::DoRemove(
     if (n != wxNOT_FOUND)
     {
         delete m_vAccels[n];
-        m_vAccels.Remove(n);
+        m_vAccels.RemoveAt(n);
     }
 
 #endif // wxUSE_ACCEL
@@ -609,7 +605,12 @@ wxMenuItem* wxMenu::FindItem(
         }
         else if ( pItem->IsSubMenu() )
         {
-            pItem = pItem->GetSubMenu()->FindItem(nItemId, hItem, ppItemMenu);
+            pItem = pItem->GetSubMenu()->FindItem( nItemId
+                                                  ,hItem
+                                                  ,ppItemMenu
+                                                 );
+            if (pItem)
+                break;
         }
         else
         {
@@ -929,7 +930,6 @@ bool wxMenuBar::Append(
     if (!wxMenuBarBase::Append(pMenu, Title))
         return FALSE;
 
-    pMenu->Attach(this);
     m_titles.Add(Title);
 
     if ( IsAttached() )
@@ -969,7 +969,6 @@ wxMenu* wxMenuBar::Remove(
     if (IsAttached())
     {
         ::WinSendMsg((HWND)GetHmenu(), MM_REMOVEITEM, MPFROM2SHORT(nId, TRUE), (MPARAM)0);
-        pMenu->Detach();
 
 #if wxUSE_ACCEL
         if (pMenu->HasAccels())