diff --git a/pcbnew/tools/pcb_selection_tool.cpp b/pcbnew/tools/pcb_selection_tool.cpp index bd8bd427ea..7d227504e1 100644 --- a/pcbnew/tools/pcb_selection_tool.cpp +++ b/pcbnew/tools/pcb_selection_tool.cpp @@ -2613,6 +2613,13 @@ void PCB_SELECTION_TOOL::select( EDA_ITEM* aItem ) return; } + if( m_enteredGroup && + !PCB_GROUP::WithinScope( static_cast( aItem ), m_enteredGroup, + m_isFootprintEditor ) ) + { + ExitGroup(); + } + highlight( aItem, SELECTED, &m_selection ); } diff --git a/pcbnew/widgets/pcb_properties_panel.cpp b/pcbnew/widgets/pcb_properties_panel.cpp index 7db916dd94..fc265e229b 100644 --- a/pcbnew/widgets/pcb_properties_panel.cpp +++ b/pcbnew/widgets/pcb_properties_panel.cpp @@ -144,6 +144,9 @@ void PCB_PROPERTIES_PANEL::valueChanged( wxPropertyGridEvent& aEvent ) PCB_SELECTION_TOOL* selectionTool = m_frame->GetToolManager()->GetTool(); const SELECTION& selection = selectionTool->GetSelection(); BOARD_ITEM* firstItem = static_cast( selection.Front() ); + + wxCHECK( firstItem, /* void */ ); + PROPERTY_BASE* property = m_propMgr.GetProperty( TYPE_HASH( *firstItem ), aEvent.GetPropertyName() ); wxVariant newValue = aEvent.GetPropertyValue();