When ignoring click events don't ignore synthetic ones.
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
This commit is contained in:
parent
539d14ce94
commit
8aea2cbd03
|
@ -143,6 +143,7 @@ int COMMON_TOOLS::CursorControl( const TOOL_EVENT& aEvent )
|
|||
button = BUT_RIGHT;
|
||||
|
||||
TOOL_EVENT evt( TC_MOUSE, action, button | modifiers );
|
||||
evt.SetParameter( type );
|
||||
evt.SetMousePosition( getViewControls()->GetCursorPosition() );
|
||||
m_toolMgr->ProcessEvent( evt );
|
||||
|
||||
|
|
|
@ -778,7 +778,7 @@ int EDIT_TOOL::doMoveSelection( TOOL_EVENT aEvent, bool aPickReference )
|
|||
if( item->Type() == PCB_MARKER_T )
|
||||
aCollector.Remove( item );
|
||||
|
||||
// Treat all pads as locked (i.e. cannot be moved independently of footprint)
|
||||
// Treat all pads as locked (i.e. cannot be moved independently of parent)
|
||||
if( !sTool->IsFootprintEditor() && item->Type() == PCB_PAD_T )
|
||||
{
|
||||
if( !aCollector.HasItem( item->GetParent() ) )
|
||||
|
@ -1049,7 +1049,8 @@ int EDIT_TOOL::doMoveSelection( TOOL_EVENT aEvent, bool aPickReference )
|
|||
|
||||
break; // finish -- we moved exactly, so we are finished
|
||||
}
|
||||
else if( hasMouseMoved && ( evt->IsMouseUp( BUT_LEFT ) || evt->IsClick( BUT_LEFT ) ) )
|
||||
else if( ( hasMouseMoved || evt->Parameter<intptr_t>() == ACTIONS::CURSOR_CLICK )
|
||||
&& ( evt->IsMouseUp( BUT_LEFT ) || evt->IsClick( BUT_LEFT ) ) )
|
||||
{
|
||||
// Ignore mouse up and click events until we receive at least one mouse move or
|
||||
// mouse drag event
|
||||
|
|
Loading…
Reference in New Issue