diff --git a/eeschema/tools/ee_selection_tool.cpp b/eeschema/tools/ee_selection_tool.cpp index 0f462a898c..26c14552c5 100644 --- a/eeschema/tools/ee_selection_tool.cpp +++ b/eeschema/tools/ee_selection_tool.cpp @@ -536,6 +536,13 @@ int EE_SELECTION_TOOL::Main( const TOOL_EVENT& aEvent ) } else if( evt->IsDrag( BUT_LEFT ) ) { + // Is another tool already moving a new object? Don't allow a drag start + if( !m_selection.Empty() && m_selection[0]->HasFlag( IS_NEW | IS_MOVED ) ) + { + evt->SetPassEvent(); + continue; + } + // drag with LMB? Select multiple objects (or at least draw a selection box) or // drag them if( SCH_EDIT_FRAME* schframe = dynamic_cast( m_frame ) ) diff --git a/eeschema/tools/sch_drawing_tools.cpp b/eeschema/tools/sch_drawing_tools.cpp index 633c918850..7518045c41 100644 --- a/eeschema/tools/sch_drawing_tools.cpp +++ b/eeschema/tools/sch_drawing_tools.cpp @@ -905,6 +905,7 @@ int SCH_DRAWING_TOOLS::TwoClickPlace( const TOOL_EVENT& aEvent ) SCH_ITEM* item = nullptr; KIGFX::VIEW_CONTROLS* controls = getViewControls(); EE_GRID_HELPER grid( m_toolMgr ); + if( m_inTwoClickPlace ) return 0; else diff --git a/pcbnew/tools/pcb_selection_tool.cpp b/pcbnew/tools/pcb_selection_tool.cpp index d3df6d9efe..57f61e83d5 100644 --- a/pcbnew/tools/pcb_selection_tool.cpp +++ b/pcbnew/tools/pcb_selection_tool.cpp @@ -345,6 +345,13 @@ int PCB_SELECTION_TOOL::Main( const TOOL_EVENT& aEvent ) } else if( evt->IsDrag( BUT_LEFT ) ) { + // Is another tool already moving a new object? Don't allow a drag start + if( !m_selection.Empty() && m_selection[0]->HasFlag( IS_NEW | IS_MOVED ) ) + { + evt->SetPassEvent(); + continue; + } + // Drag with LMB? Select multiple objects (or at least draw a selection box) // or drag them m_frame->FocusOnItem( nullptr );