diff --git a/eeschema/block_libedit.cpp b/eeschema/block_libedit.cpp index e9df4abb68..7e9092f830 100644 --- a/eeschema/block_libedit.cpp +++ b/eeschema/block_libedit.cpp @@ -183,7 +183,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); DrawPanel->SetMouseCapture( NULL, NULL ); - SetToolID( GetToolId(), DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); DrawPanel->Refresh( true ); } @@ -269,7 +269,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) GetScreen()->SetCurItem( NULL ); DrawPanel->SetMouseCapture( NULL, NULL ); DrawPanel->Refresh( true ); - SetToolID( GetToolId(), DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); } diff --git a/gerbview/block.cpp b/gerbview/block.cpp index ef451bade7..a666260deb 100644 --- a/gerbview/block.cpp +++ b/gerbview/block.cpp @@ -136,8 +136,9 @@ void WinEDA_GerberFrame::HandleBlockPlace( wxDC* DC ) break; } + DrawPanel->SetMouseCapture( NULL, NULL ); DrawPanel->EndMouseCapture( ); - DrawPanel->SetCursor( DrawPanel->GetCurrentCursor() ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); GetScreen()->SetModify(); GetScreen()->ClearBlockCommand(); @@ -212,8 +213,9 @@ bool WinEDA_GerberFrame::HandleBlockEnd( wxDC* DC ) if( ! nextcmd ) { GetScreen()->ClearBlockCommand(); + DrawPanel->SetMouseCapture( NULL, NULL ); DrawPanel->EndMouseCapture( ); - DrawPanel->SetCursor( DrawPanel->GetCurrentCursor() ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); DisplayToolMsg( wxEmptyString ); } diff --git a/pcbnew/block_module_editor.cpp b/pcbnew/block_module_editor.cpp index 78dba320f7..eac5de463c 100644 --- a/pcbnew/block_module_editor.cpp +++ b/pcbnew/block_module_editor.cpp @@ -194,7 +194,7 @@ bool WinEDA_ModuleEditFrame::HandleBlockEnd( wxDC* DC ) GetScreen()->ClearBlockCommand(); SetCurItem( NULL ); DrawPanel->SetMouseCapture( NULL, NULL ); - SetToolID( GetToolId(), DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); DrawPanel->Refresh( true ); } @@ -276,7 +276,7 @@ void WinEDA_ModuleEditFrame::HandleBlockPlace( wxDC* DC ) SetCurItem( NULL ); DrawPanel->SetMouseCapture( NULL, NULL ); DrawPanel->Refresh( true ); - SetToolID( GetToolId(), DrawPanel->GetDefaultCursor(), wxEmptyString ); + SetToolID( GetToolId(), DrawPanel->GetCurrentCursor(), wxEmptyString ); } diff --git a/pcbnew/dialogs/dialog_general_options.cpp b/pcbnew/dialogs/dialog_general_options.cpp index 9758042a55..f9b0fd1272 100644 --- a/pcbnew/dialogs/dialog_general_options.cpp +++ b/pcbnew/dialogs/dialog_general_options.cpp @@ -126,6 +126,10 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) case ID_TB_OPTIONS_SHOW_RATSNEST: SetElementVisibility( RATSNEST_VISIBLE, state ); + if( state && (GetBoard()->m_Status_Pcb & LISTE_RATSNEST_ITEM_OK) == 0 ) + { + Compile_Ratsnest( NULL, true ); + } DrawPanel->Refresh(); break;