From 7ddd3137a351da18304de0bbb12bd2b1e56002c5 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Tue, 15 Feb 2022 21:59:46 +0000 Subject: [PATCH] While flags are in prefs, actual clearance values are in board setup. Fixes https://gitlab.com/kicad/code/kicad/issues/10852 --- pcbnew/pcb_edit_frame.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pcbnew/pcb_edit_frame.cpp b/pcbnew/pcb_edit_frame.cpp index 1ad503de74..5e448308f7 100644 --- a/pcbnew/pcb_edit_frame.cpp +++ b/pcbnew/pcb_edit_frame.cpp @@ -1028,11 +1028,26 @@ void PCB_EDIT_FRAME::ShowBoardSetupDialog( const wxString& aInitialPage ) Kiway().CommonSettingsChanged( false, true ); + PCBNEW_SETTINGS* settings = GetPcbNewSettings(); + GetCanvas()->GetView()->UpdateAllItemsConditionally( KIGFX::REPAINT, [&]( KIGFX::VIEW_ITEM* aItem ) -> bool { - if( dynamic_cast( aItem ) ) - return true; // text variables + if( dynamic_cast( aItem ) ) + { + if( settings->m_Display.m_PadClearance ) + return true; // clearance values + } + else if( dynamic_cast( aItem ) ) + { + if( settings->m_Display.m_TrackClearance == SHOW_WITH_VIA_ALWAYS ) + return true; // clearance values + } + else if( dynamic_cast( aItem ) ) + { + if( dynamic_cast( aItem )->HasTextVars() ) + return true; // text variables + } return false; } );