Don't eat commands that aren't ours in SCH_MOVE_TOOL.
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
This commit is contained in:
parent
90b147a914
commit
d468618411
|
@ -373,41 +373,38 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent )
|
||||||
unselect = true;
|
unselect = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( evt->Category() == TC_COMMAND )
|
else if( evt->IsAction( &ACTIONS::doDelete ) )
|
||||||
{
|
{
|
||||||
if( evt->IsAction( &ACTIONS::doDelete ) )
|
// Exit on a remove operation; there is no further processing for removed items.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if( evt->IsAction( &ACTIONS::duplicate ) )
|
||||||
|
{
|
||||||
|
if( selection.Front()->IsNew() )
|
||||||
{
|
{
|
||||||
// Exit on a remove operation; there is no further processing for removed items.
|
// This doesn't really make sense; we'll just end up dragging a stack of
|
||||||
break;
|
// objects so Duplicate() is going to ignore this and we'll just carry on.
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else if( evt->IsAction( &ACTIONS::duplicate ) )
|
|
||||||
{
|
|
||||||
if( selection.Front()->IsNew() )
|
|
||||||
{
|
|
||||||
// This doesn't really make sense; we'll just end up dragging a stack of
|
|
||||||
// objects so Duplicate() is going to ignore this and we'll just carry on.
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Move original back and exit. The duplicate will run in its own loop.
|
// Move original back and exit. The duplicate will run in its own loop.
|
||||||
restore_state = true;
|
restore_state = true;
|
||||||
unselect = false;
|
unselect = false;
|
||||||
chain_commands = true;
|
chain_commands = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if( evt->Action() == TA_CHOICE_MENU_CHOICE )
|
else if( evt->Action() == TA_CHOICE_MENU_CHOICE )
|
||||||
|
{
|
||||||
|
if( evt->GetCommandId().get() >= ID_POPUP_SCH_SELECT_UNIT_CMP
|
||||||
|
&& evt->GetCommandId().get() <= ID_POPUP_SCH_SELECT_UNIT_CMP_MAX )
|
||||||
{
|
{
|
||||||
if( evt->GetCommandId().get() >= ID_POPUP_SCH_SELECT_UNIT_CMP
|
SCH_COMPONENT* component = dynamic_cast<SCH_COMPONENT*>( selection.Front() );
|
||||||
&& evt->GetCommandId().get() <= ID_POPUP_SCH_SELECT_UNIT_CMP_MAX )
|
int unit = evt->GetCommandId().get() - ID_POPUP_SCH_SELECT_UNIT_CMP;
|
||||||
{
|
|
||||||
SCH_COMPONENT* component = dynamic_cast<SCH_COMPONENT*>( selection.Front() );
|
|
||||||
int unit = evt->GetCommandId().get() - ID_POPUP_SCH_SELECT_UNIT_CMP;
|
|
||||||
|
|
||||||
if( component )
|
if( component )
|
||||||
{
|
{
|
||||||
m_frame->SelectUnit( component, unit );
|
m_frame->SelectUnit( component, unit );
|
||||||
m_toolMgr->RunAction( ACTIONS::refreshPreview );
|
m_toolMgr->RunAction( ACTIONS::refreshPreview );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue