Schematic: don't trim unchanged segments that are connected
Previously if you had a wire with two unconnected ends and dragged the end of another wire to connect with one end, it would delete the first wire.
This commit is contained in:
parent
bbdb30135e
commit
5e72a1008b
|
@ -309,6 +309,9 @@ bool SCH_EDIT_FRAME::BreakSegment( SCH_LINE* aSegment, const VECTOR2I& aPoint,
|
||||||
SaveCopyInUndoList( aScreen, newSegment, UNDO_REDO::NEWITEM, true );
|
SaveCopyInUndoList( aScreen, newSegment, UNDO_REDO::NEWITEM, true );
|
||||||
SaveCopyInUndoList( aScreen, aSegment, UNDO_REDO::CHANGED, true );
|
SaveCopyInUndoList( aScreen, aSegment, UNDO_REDO::CHANGED, true );
|
||||||
|
|
||||||
|
aSegment->SetFlags( IS_CHANGED );
|
||||||
|
newSegment->SetFlags( IS_NEW );
|
||||||
|
|
||||||
UpdateItem( aSegment, false, true );
|
UpdateItem( aSegment, false, true );
|
||||||
aSegment->SetEndPoint( aPoint );
|
aSegment->SetEndPoint( aPoint );
|
||||||
|
|
||||||
|
|
|
@ -934,7 +934,8 @@ void SCH_MOVE_TOOL::trimDanglingLines()
|
||||||
// Find split segments (one segment is new, the other is changed) that
|
// Find split segments (one segment is new, the other is changed) that
|
||||||
// we aren't dragging and don't have selected
|
// we aren't dragging and don't have selected
|
||||||
if( aChangedItem->IsDangling() && !aChangedItem->IsSelected()
|
if( aChangedItem->IsDangling() && !aChangedItem->IsSelected()
|
||||||
&& ( aChangedItem->IsNew() || !aChangedItem->IsDragging() )
|
&& ( aChangedItem->IsNew()
|
||||||
|
|| ( !aChangedItem->IsDragging() && aChangedItem->IsModified() ) )
|
||||||
&& aChangedItem->IsType( { SCH_LINE_T } ) )
|
&& aChangedItem->IsType( { SCH_LINE_T } ) )
|
||||||
{
|
{
|
||||||
danglers.insert( aChangedItem );
|
danglers.insert( aChangedItem );
|
||||||
|
|
Loading…
Reference in New Issue