Loading pcbnew/tools/edit_tool.cpp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,21 @@ int EDIT_TOOL::Properties( TOOL_EVENT& aEvent ) { { // Display properties dialog // Display properties dialog BOARD_ITEM* item = static_cast<BOARD_ITEM*>( selection.items.GetPickedItem( 0 ) ); BOARD_ITEM* item = static_cast<BOARD_ITEM*>( selection.items.GetPickedItem( 0 ) ); VECTOR2I cursor = getView()->ToWorld( getViewControls()->GetCursorPosition() ); // Check if user wants to edit pad or module properties if( item->Type() == PCB_MODULE_T ) { for( D_PAD* pad = static_cast<MODULE*>( item )->Pads(); pad; pad = pad->Next() ) { if( pad->ViewBBox().Contains( cursor ) ) { // Turns out that user wants to edit a pad properties item = pad; break; } } } editFrame->SaveCopyInUndoList( item, UR_CHANGED ); editFrame->SaveCopyInUndoList( item, UR_CHANGED ); editFrame->OnModify(); editFrame->OnModify(); Loading Loading
pcbnew/tools/edit_tool.cpp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,21 @@ int EDIT_TOOL::Properties( TOOL_EVENT& aEvent ) { { // Display properties dialog // Display properties dialog BOARD_ITEM* item = static_cast<BOARD_ITEM*>( selection.items.GetPickedItem( 0 ) ); BOARD_ITEM* item = static_cast<BOARD_ITEM*>( selection.items.GetPickedItem( 0 ) ); VECTOR2I cursor = getView()->ToWorld( getViewControls()->GetCursorPosition() ); // Check if user wants to edit pad or module properties if( item->Type() == PCB_MODULE_T ) { for( D_PAD* pad = static_cast<MODULE*>( item )->Pads(); pad; pad = pad->Next() ) { if( pad->ViewBBox().Contains( cursor ) ) { // Turns out that user wants to edit a pad properties item = pad; break; } } } editFrame->SaveCopyInUndoList( item, UR_CHANGED ); editFrame->SaveCopyInUndoList( item, UR_CHANGED ); editFrame->OnModify(); editFrame->OnModify(); Loading