eeschema: Place bus unfold on the stack
When activating a bus unfold, the results should be placed with the new line generation to allow proper undo ordering.
This commit is contained in:
parent
3bdd69ad6b
commit
3e7969ab8d
|
@ -392,12 +392,8 @@ void SCH_EDIT_FRAME::EndSegment()
|
||||||
{
|
{
|
||||||
wxASSERT( m_busUnfold.entry && m_busUnfold.label );
|
wxASSERT( m_busUnfold.entry && m_busUnfold.label );
|
||||||
|
|
||||||
PICKED_ITEMS_LIST bus_items;
|
itemList.PushItem( ITEM_PICKER( m_busUnfold.entry, UR_NEW ) );
|
||||||
|
itemList.PushItem( ITEM_PICKER( m_busUnfold.label, UR_NEW ) );
|
||||||
bus_items.PushItem( ITEM_PICKER( m_busUnfold.entry, UR_NEW ) );
|
|
||||||
bus_items.PushItem( ITEM_PICKER( m_busUnfold.label, UR_NEW ) );
|
|
||||||
|
|
||||||
SaveCopyInUndoList( bus_items, UR_NEW, false );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the last non-null wire (this is the last created segment).
|
// Get the last non-null wire (this is the last created segment).
|
||||||
|
@ -831,8 +827,10 @@ bool SCH_EDIT_FRAME::BreakSegmentsOnJunctions( bool aAppend, SCH_SCREEN* aScreen
|
||||||
SCH_BUS_ENTRY_BASE* busEntry = dynamic_cast<SCH_BUS_ENTRY_BASE*>( item );
|
SCH_BUS_ENTRY_BASE* busEntry = dynamic_cast<SCH_BUS_ENTRY_BASE*>( item );
|
||||||
if( busEntry )
|
if( busEntry )
|
||||||
{
|
{
|
||||||
if( BreakSegments( busEntry->GetPosition(), brokenSegments || aAppend, aScreen )
|
if( BreakSegments( busEntry->GetPosition(), brokenSegments || aAppend, aScreen ) )
|
||||||
|| BreakSegments( busEntry->m_End(), brokenSegments || aAppend, aScreen ) )
|
brokenSegments = true;
|
||||||
|
|
||||||
|
if( BreakSegments( busEntry->m_End(), brokenSegments || aAppend, aScreen ) )
|
||||||
brokenSegments = true;
|
brokenSegments = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue