From aa5e1cd09b118c29a34eb4befbeed66b3abd83f8 Mon Sep 17 00:00:00 2001 From: lifekidyeaa <Unknown> Date: Tue, 12 Jun 2007 17:47:05 +0000 Subject: [PATCH] * backspace should not be allowed to delete modules (in order to re-insert them, you may have to edit the .brd file directly) --- pcbnew/edit.cpp | 1 + pcbnew/hotkeys.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 11f1c34200..9729d0ed3f 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -1365,6 +1365,7 @@ void WinEDA_PcbFrame::SwitchLayer(wxDC *DC, int layer) Other_Layer_Route( (TRACK *) GetScreen()->m_CurrentItem, DC); } } + GetScreen()->m_Active_Layer = layer; if ( DisplayOpt.ContrastModeDisplay ) diff --git a/pcbnew/hotkeys.cpp b/pcbnew/hotkeys.cpp index c66d52ae41..d3450f45cb 100644 --- a/pcbnew/hotkeys.cpp +++ b/pcbnew/hotkeys.cpp @@ -46,7 +46,7 @@ MODULE* module = NULL; case WXK_NUMPAD_DELETE: OnHotkeyDeleteItem(DC, DrawStruct); break; - case WXK_BACK:{ + case WXK_BACK:{ if( m_ID_current_state == ID_TRACK_BUTT && GetScreen()->m_Active_Layer <= CMP_N ){ bool ItemFree = (GetScreen()->m_CurrentItem == NULL ) || @@ -54,7 +54,9 @@ MODULE* module = NULL; if ( ItemFree ){ //no track is currently being edited - select a segment and remove it. DrawStruct = PcbGeneralLocateAndDisplay(); - if ( DrawStruct ) + //don't let backspace delete modules!! + if ( DrawStruct && (DrawStruct->m_StructType == TYPETRACK + || DrawStruct->m_StructType == TYPEVIA)) Delete_Segment(DC, (TRACK*)DrawStruct); GetScreen()->SetModify(); } @@ -217,6 +219,7 @@ bool ItemFree = (GetScreen()->m_CurrentItem == NULL ) || { MODULE * module = Locate_Prefered_Module(m_Pcb, CURSEUR_ON_GRILLE); if ( module == NULL ) return FALSE; + if( ! IsOK(this, _("Delete module?")) ) return FALSE; RemoveStruct(module, DC); } else return FALSE;