Cleanup after cancelled add text dialog.
Fixes: lp:1838452 * https://bugs.launchpad.net/kicad/+bug/1838452
This commit is contained in:
parent
cd4983f092
commit
3f28a1d1cb
|
@ -291,9 +291,10 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
auto cleanup = [&] () {
|
auto cleanup = [&] () {
|
||||||
m_toolMgr->RunAction( PCB_ACTIONS::selectionClear, true );
|
m_toolMgr->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||||
|
m_controls->ForceCursorPosition( false );
|
||||||
|
m_controls->ShowCursor( true );
|
||||||
m_controls->SetAutoPan( false );
|
m_controls->SetAutoPan( false );
|
||||||
m_controls->CaptureCursor( false );
|
m_controls->CaptureCursor( false );
|
||||||
m_controls->ShowCursor( true );
|
|
||||||
delete text;
|
delete text;
|
||||||
text = NULL;
|
text = NULL;
|
||||||
};
|
};
|
||||||
|
@ -392,23 +393,16 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
|
||||||
} );
|
} );
|
||||||
|
|
||||||
if( textPcb->GetText().IsEmpty() )
|
if( textPcb->GetText().IsEmpty() )
|
||||||
{
|
|
||||||
m_controls->ForceCursorPosition( false );
|
|
||||||
delete textPcb;
|
delete textPcb;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
text = textPcb;
|
text = textPcb;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( text == NULL )
|
if( text )
|
||||||
continue;
|
{
|
||||||
|
m_controls->WarpCursor( text->GetPosition(), true );
|
||||||
m_controls->WarpCursor( text->GetPosition(), true );
|
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
|
||||||
m_controls->ForceCursorPosition( false );
|
}
|
||||||
m_controls->CaptureCursor( true );
|
|
||||||
m_controls->SetAutoPan( true );
|
|
||||||
|
|
||||||
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( placing )
|
if( placing )
|
||||||
|
@ -421,12 +415,13 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
|
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
|
||||||
|
|
||||||
m_controls->CaptureCursor( false );
|
text = nullptr;
|
||||||
m_controls->SetAutoPan( false );
|
|
||||||
m_controls->ShowCursor( true );
|
|
||||||
|
|
||||||
text = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_controls->ForceCursorPosition( false );
|
||||||
|
m_controls->ShowCursor( true );
|
||||||
|
m_controls->CaptureCursor( text != nullptr );
|
||||||
|
m_controls->SetAutoPan( text != nullptr );
|
||||||
}
|
}
|
||||||
else if( text && evt->IsMotion() )
|
else if( text && evt->IsMotion() )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue