Don't re-add item to screen if it wasn't there to begin with.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16184
This commit is contained in:
Jeff Young 2023-11-28 18:19:15 +00:00
parent 7eb98a9863
commit 07ee44740b
1 changed files with 4 additions and 2 deletions

View File

@ -677,11 +677,12 @@ bool DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow()
SCH_COMMIT commit( GetParent() ); SCH_COMMIT commit( GetParent() );
SCH_SCREEN* currentScreen = GetParent()->GetScreen(); SCH_SCREEN* currentScreen = GetParent()->GetScreen();
bool replaceOnCurrentScreen;
wxCHECK( currentScreen, false ); wxCHECK( currentScreen, false );
// This needs to be done before the LIB_ID is changed to prevent stale library symbols in // This needs to be done before the LIB_ID is changed to prevent stale library symbols in
// the schematic file. // the schematic file.
currentScreen->Remove( m_symbol ); replaceOnCurrentScreen = currentScreen->Remove( m_symbol );
// save old cmp in undo list if not already in edit, or moving ... // save old cmp in undo list if not already in edit, or moving ...
if( m_symbol->GetEditFlags() == 0 ) if( m_symbol->GetEditFlags() == 0 )
@ -844,7 +845,8 @@ bool DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow()
} }
} }
currentScreen->Append( m_symbol ); if( replaceOnCurrentScreen )
currentScreen->Append( m_symbol );
if( !commit.Empty() ) if( !commit.Empty() )
commit.Push( _( "Edit Symbol Properties" ) ); commit.Push( _( "Edit Symbol Properties" ) );