diff --git a/common/tool/action_menu.cpp b/common/tool/action_menu.cpp index 91f46d5a2e..79925aa5c0 100644 --- a/common/tool/action_menu.cpp +++ b/common/tool/action_menu.cpp @@ -183,20 +183,21 @@ wxMenuItem* ACTION_MENU::Add( const TOOL_ACTION& aAction, bool aIsCheckmarkEntry wxMenuItem* ACTION_MENU::Add( ACTION_MENU* aMenu ) { - m_submenus.push_back( aMenu ); + ACTION_MENU* menuCopy = aMenu->Clone(); + m_submenus.push_back( menuCopy ); - wxASSERT_MSG( !aMenu->m_title.IsEmpty(), "Set a title for ACTION_MENU using SetTitle()" ); + wxASSERT_MSG( !menuCopy->m_title.IsEmpty(), "Set a title for ACTION_MENU using SetTitle()" ); if( !!aMenu->m_icon ) { - wxMenuItem* newItem = new wxMenuItem( this, -1, aMenu->m_title ); + wxMenuItem* newItem = new wxMenuItem( this, -1, menuCopy->m_title ); AddBitmapToMenuItem( newItem, KiBitmap( aMenu->m_icon ) ); - newItem->SetSubMenu( aMenu ); + newItem->SetSubMenu( menuCopy ); return Append( newItem ); } else { - return AppendSubMenu( aMenu, aMenu->m_title ); + return AppendSubMenu( menuCopy, menuCopy->m_title ); } } diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index 3eb72f8ee5..06e9fc51fd 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -75,7 +75,7 @@ void SCH_EDIT_FRAME::ReCreateMenuBar() fileMenu->Add( ACTIONS::doNew ); fileMenu->Add( ACTIONS::open ); - wxMenuItem* item = fileMenu->Add( openRecentMenu->Clone() ); + wxMenuItem* item = fileMenu->Add( openRecentMenu ); // Add the file menu condition here since it needs the item ID for the submenu ACTION_CONDITIONS cond; diff --git a/gerbview/menubar.cpp b/gerbview/menubar.cpp index 7af26ef4a9..f1a5484373 100644 --- a/gerbview/menubar.cpp +++ b/gerbview/menubar.cpp @@ -77,7 +77,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar() fileMenu->Add( GERBVIEW_ACTIONS::openAutodetected ); fileMenu->Add( GERBVIEW_ACTIONS::openGerber ); - wxMenuItem* gbrItem = fileMenu->Add( openRecentGbrMenu->Clone() ); + wxMenuItem* gbrItem = fileMenu->Add( openRecentGbrMenu ); RegisterUIUpdateHandler( gbrItem->GetId(), FileHistoryCond( recentGbrFiles) ); @@ -99,7 +99,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar() m_drillFileHistory.UpdateClearText( openRecentDrlMenu, _( "Clear Recent Drill Files" ) ); fileMenu->Add( GERBVIEW_ACTIONS::openDrillFile ); - wxMenuItem* drillItem = fileMenu->Add( openRecentDrlMenu->Clone() ); + wxMenuItem* drillItem = fileMenu->Add( openRecentDrlMenu ); RegisterUIUpdateHandler( drillItem->GetId(), FileHistoryCond( m_drillFileHistory ) ); @@ -120,7 +120,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar() m_jobFileHistory.UpdateClearText( openRecentJobMenu, _( "Clear Recent Job Files" ) ); fileMenu->Add( GERBVIEW_ACTIONS::openJobFile ); - wxMenuItem* jobItem = fileMenu->Add( openRecentJobMenu->Clone() ); + wxMenuItem* jobItem = fileMenu->Add( openRecentJobMenu ); RegisterUIUpdateHandler( jobItem->GetId(), FileHistoryCond( m_jobFileHistory ) ); @@ -141,7 +141,7 @@ void GERBVIEW_FRAME::ReCreateMenuBar() m_zipFileHistory.UpdateClearText( openRecentZipMenu, _( "Clear Recent Zip Files" ) ); fileMenu->Add( GERBVIEW_ACTIONS::openZipFile ); - wxMenuItem* zipItem = fileMenu->Add( openRecentZipMenu->Clone() ); + wxMenuItem* zipItem = fileMenu->Add( openRecentZipMenu ); RegisterUIUpdateHandler( zipItem->GetId(), FileHistoryCond( m_zipFileHistory ) ); #undef FileHistoryCond diff --git a/kicad/menubar.cpp b/kicad/menubar.cpp index a74615170f..5056aa3f1e 100644 --- a/kicad/menubar.cpp +++ b/kicad/menubar.cpp @@ -81,7 +81,7 @@ void KICAD_MANAGER_FRAME::ReCreateMenuBar() fileMenu->Add( KICAD_MANAGER_ACTIONS::openProject ); - wxMenuItem* item = fileMenu->Add( openRecentMenu->Clone() ); + wxMenuItem* item = fileMenu->Add( openRecentMenu ); // Add the file menu condition here since it needs the item ID for the submenu ACTION_CONDITIONS cond; diff --git a/pagelayout_editor/menubar.cpp b/pagelayout_editor/menubar.cpp index 62f7aad2c5..093014e074 100644 --- a/pagelayout_editor/menubar.cpp +++ b/pagelayout_editor/menubar.cpp @@ -71,7 +71,7 @@ void PL_EDITOR_FRAME::ReCreateMenuBar() fileMenu->Add( ACTIONS::doNew ); fileMenu->Add( ACTIONS::open ); - wxMenuItem* item = fileMenu->Add( openRecentMenu->Clone() ); + wxMenuItem* item = fileMenu->Add( openRecentMenu ); // Add the file menu condition here since it needs the item ID for the submenu ACTION_CONDITIONS cond; diff --git a/pcbnew/menubar_pcb_editor.cpp b/pcbnew/menubar_pcb_editor.cpp index f4038d8283..43b4ab9ae7 100644 --- a/pcbnew/menubar_pcb_editor.cpp +++ b/pcbnew/menubar_pcb_editor.cpp @@ -77,7 +77,7 @@ void PCB_EDIT_FRAME::ReCreateMenuBar() fileMenu->Add( ACTIONS::doNew ); fileMenu->Add( ACTIONS::open ); - wxMenuItem* item = fileMenu->Add( openRecentMenu->Clone() ); + wxMenuItem* item = fileMenu->Add( openRecentMenu ); // Add the file menu condition here since it needs the item ID for the submenu ACTION_CONDITIONS cond;