diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index 95af16a3d8..5badc58d46 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -434,7 +434,6 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) SCH_ITEM* my_clone = (SCH_ITEM*) repeater->Clone(); // If cloning a component then put into 'move' mode. - /* please tell me where components are snapshotted via SetRepeatItem() if( my_clone->Type() == SCH_COMPONENT_T ) { wxPoint pos = GetCrossHairPosition() - @@ -447,7 +446,6 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) MoveItem( my_clone, DC ); } else - */ { my_clone->Move( wxPoint( g_RepeatStep.GetWidth(), g_RepeatStep.GetHeight() ) ); diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index 474e664235..6e3fbf6e05 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -385,8 +385,11 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition, break; case HK_REPEAT_LAST: - if( notBusy && GetRepeatItem() && ( GetRepeatItem()->GetFlags() == 0 ) ) - RepeatDrawItem( aDC ); + if( notBusy && GetRepeatItem() ) + { + //if( GetRepeatItem()->GetFlags() == 0 ) + RepeatDrawItem( aDC ); + } break; case HK_END_CURR_LINEWIREBUS: diff --git a/eeschema/onleftclick.cpp b/eeschema/onleftclick.cpp index 7fa3a3f509..6dfef208e6 100644 --- a/eeschema/onleftclick.cpp +++ b/eeschema/onleftclick.cpp @@ -52,8 +52,8 @@ static wxArrayString s_PowerNameList; void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { - SCH_ITEM* item = GetScreen()->GetCurItem(); - wxPoint gridPosition = GetGridPosition( aPosition ); + SCH_ITEM* item = GetScreen()->GetCurItem(); + wxPoint gridPosition = GetGridPosition( aPosition ); if( ( GetToolId() == ID_NO_TOOL_SELECTED ) || ( item && item->GetFlags() ) ) { @@ -120,7 +120,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) m_CurrentSheet->Pop(); DisplayCurrentSheet(); } - break; case ID_NOCONN_BUTT: @@ -210,7 +209,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_ADD_IMAGE_BUTT: @@ -223,7 +221,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_LABEL_BUTT: @@ -236,7 +233,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_GLABEL_BUTT: @@ -255,7 +251,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_SHEET_SYMBOL_BUTT: @@ -273,7 +268,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_IMPORT_HLABEL_BUTT: @@ -295,7 +289,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_SCH_PLACE_COMPONENT: @@ -308,7 +301,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; case ID_PLACE_POWER_BUTT: @@ -322,7 +314,6 @@ void SCH_EDIT_FRAME::OnLeftClick( wxDC* aDC, const wxPoint& aPosition ) { addCurrentItemToList( aDC ); } - break; default: diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index dadb7a8663..74bf05697e 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -294,8 +294,13 @@ void SCH_EDIT_FRAME::SetRepeatItem( SCH_ITEM* aItem ) if( cur != old ) { if( cur ) + { aItem = (SCH_ITEM*) cur->Clone(); + // Clone() preserves the flags, we want 'em cleared. + aItem->ClearFlags(); + } + m_item_to_repeat = aItem; delete old; @@ -891,7 +896,7 @@ bool SCH_EDIT_FRAME::isAutoSaveRequired() const void SCH_EDIT_FRAME::addCurrentItemToList( wxDC* aDC ) { SCH_SCREEN* screen = GetScreen(); - SCH_ITEM* item = screen->GetCurItem(); + SCH_ITEM* item = screen->GetCurItem(); wxCHECK_RET( item != NULL, wxT( "Cannot add current item to list." ) );