Items added to a selection for a drag should only be temporary.
After the drag, cancel, or undo, only the originally-selected items should remain selected.
This commit is contained in:
parent
cd1f3acf49
commit
87e163945e
|
@ -117,6 +117,12 @@ protected:
|
||||||
void saveCopyInUndoList( EDA_ITEM* aItem, UNDO_REDO_T aType, bool aAppend = false )
|
void saveCopyInUndoList( EDA_ITEM* aItem, UNDO_REDO_T aType, bool aAppend = false )
|
||||||
{
|
{
|
||||||
KICAD_T itemType = aItem->Type();
|
KICAD_T itemType = aItem->Type();
|
||||||
|
bool selected = aItem->IsSelected();
|
||||||
|
|
||||||
|
// IS_SELECTED flag should not be set on undo items which were added for
|
||||||
|
// a drag operation.
|
||||||
|
if( selected && aItem->HasFlag( TEMP_SELECTED ))
|
||||||
|
aItem->ClearSelected();
|
||||||
|
|
||||||
if( m_isLibEdit )
|
if( m_isLibEdit )
|
||||||
{
|
{
|
||||||
|
@ -133,6 +139,9 @@ protected:
|
||||||
else
|
else
|
||||||
editFrame->SaveCopyInUndoList( (SCH_ITEM*) aItem, aType, aAppend );
|
editFrame->SaveCopyInUndoList( (SCH_ITEM*) aItem, aType, aAppend );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( selected && aItem->HasFlag( TEMP_SELECTED ) )
|
||||||
|
aItem->SetSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -234,7 +234,7 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||||
{
|
{
|
||||||
if( item->IsNew() )
|
if( item->IsNew() )
|
||||||
{
|
{
|
||||||
if( item->HasFlag(TEMP_SELECTED ) && m_isDragOperation )
|
if( item->HasFlag( TEMP_SELECTED ) && m_isDragOperation )
|
||||||
{
|
{
|
||||||
// Item was added in getConnectedDragItems
|
// Item was added in getConnectedDragItems
|
||||||
saveCopyInUndoList( (SCH_ITEM*) item, UR_NEW, appendUndo );
|
saveCopyInUndoList( (SCH_ITEM*) item, UR_NEW, appendUndo );
|
||||||
|
@ -431,6 +431,8 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||||
for( EDA_ITEM* item : selection )
|
for( EDA_ITEM* item : selection )
|
||||||
item->ClearEditFlags();
|
item->ClearEditFlags();
|
||||||
|
|
||||||
|
m_selectionTool->RemoveItemsFromSel( &m_dragAdditions, QUIET_MODE );
|
||||||
|
|
||||||
if( restore_state )
|
if( restore_state )
|
||||||
{
|
{
|
||||||
m_frame->RollbackSchematicFromUndo();
|
m_frame->RollbackSchematicFromUndo();
|
||||||
|
|
Loading…
Reference in New Issue