Cleanup after cancelled add text dialog.

Fixes: lp:1838452
* https://bugs.launchpad.net/kicad/+bug/1838452
This commit is contained in:
Jeff Young 2019-07-31 23:09:55 -06:00
parent cd4983f092
commit 3f28a1d1cb
1 changed files with 13 additions and 18 deletions

View File

@ -291,9 +291,10 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
auto cleanup = [&] () {
m_toolMgr->RunAction( PCB_ACTIONS::selectionClear, true );
m_controls->ForceCursorPosition( false );
m_controls->ShowCursor( true );
m_controls->SetAutoPan( false );
m_controls->CaptureCursor( false );
m_controls->ShowCursor( true );
delete text;
text = NULL;
};
@ -392,23 +393,16 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
} );
if( textPcb->GetText().IsEmpty() )
{
m_controls->ForceCursorPosition( false );
delete textPcb;
}
else
text = textPcb;
}
if( text == NULL )
continue;
m_controls->WarpCursor( text->GetPosition(), true );
m_controls->ForceCursorPosition( false );
m_controls->CaptureCursor( true );
m_controls->SetAutoPan( true );
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
if( text )
{
m_controls->WarpCursor( text->GetPosition(), true );
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
}
}
if( placing )
@ -421,12 +415,13 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent )
m_toolMgr->RunAction( PCB_ACTIONS::selectItem, true, text );
m_controls->CaptureCursor( false );
m_controls->SetAutoPan( false );
m_controls->ShowCursor( true );
text = NULL;
text = nullptr;
}
m_controls->ForceCursorPosition( false );
m_controls->ShowCursor( true );
m_controls->CaptureCursor( text != nullptr );
m_controls->SetAutoPan( text != nullptr );
}
else if( text && evt->IsMotion() )
{