Commit 94a46bf2 authored by Maciej Suminski's avatar Maciej Suminski

Fixed pcbnew crash when a locked footprint is dragged from an edge of the screen.

parent 73005087
...@@ -240,7 +240,7 @@ void WX_VIEW_CONTROLS::onTimer( wxTimerEvent& aEvent ) ...@@ -240,7 +240,7 @@ void WX_VIEW_CONTROLS::onTimer( wxTimerEvent& aEvent )
#if wxCHECK_VERSION( 3, 0, 0 ) #if wxCHECK_VERSION( 3, 0, 0 )
moveEvent.SetControlDown( wxGetKeyState( WXK_CONTROL ) ); moveEvent.SetControlDown( wxGetKeyState( WXK_CONTROL ) );
moveEvent.SetShiftDown( wxGetKeyState( WXK_SHIFT ) ); moveEvent.SetShiftDown( wxGetKeyState( WXK_SHIFT ) );
moveEvent.SetAltDown( wxGetKeyState( WXK_ALT) ); moveEvent.SetAltDown( wxGetKeyState( WXK_ALT ) );
#else #else
// wx <3.0 do not have accessors, but the fields are exposed // wx <3.0 do not have accessors, but the fields are exposed
moveEvent.m_controlDown = wxGetKeyState( WXK_CONTROL ); moveEvent.m_controlDown = wxGetKeyState( WXK_CONTROL );
......
...@@ -102,7 +102,6 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent ) ...@@ -102,7 +102,6 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent )
PCB_BASE_EDIT_FRAME* editFrame = getEditFrame<PCB_BASE_EDIT_FRAME>(); PCB_BASE_EDIT_FRAME* editFrame = getEditFrame<PCB_BASE_EDIT_FRAME>();
controls->ShowCursor( true ); controls->ShowCursor( true );
controls->SetSnapping( true ); controls->SetSnapping( true );
controls->SetAutoPan( true );
controls->ForceCursorPosition( false ); controls->ForceCursorPosition( false );
// Main loop: keep receiving events // Main loop: keep receiving events
...@@ -159,7 +158,7 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent ) ...@@ -159,7 +158,7 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent )
} }
else // Prepare to start dragging else // Prepare to start dragging
{ {
if( m_selectionTool->CheckLock() ) if( m_selectionTool->CheckLock() || selection.Empty() )
break; break;
// Save items, so changes can be undone // Save items, so changes can be undone
...@@ -188,6 +187,7 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent ) ...@@ -188,6 +187,7 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent )
wxPoint( origin.x, origin.y ); wxPoint( origin.x, origin.y );
} }
controls->SetAutoPan( true );
m_dragging = true; m_dragging = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment