Make sure redraw happens regardless of order of panel commits.

(We don't control the order of the TransferDataFromWindow calls
for the various panels and here the junction dot size is dependant
on the default netclass wire size.  So that calc has to be done
after all the various TransferDataFromWindow calls are made.)

Fixes https://gitlab.com/kicad/code/kicad/issues/9541
This commit is contained in:
Jeff Young 2021-11-13 23:19:28 +00:00
parent 025d9f82ea
commit b747ae5bdf
2 changed files with 9 additions and 12 deletions

View File

@ -136,8 +136,6 @@ bool PANEL_SETUP_FORMATTING::TransferDataFromWindow()
if( m_choiceJunctionDotSize->GetSelection() != wxNOT_FOUND )
settings.m_JunctionSizeChoice = m_choiceJunctionDotSize->GetSelection();
settings.m_JunctionSize = m_frame->GetSchematicJunctionSize();
settings.m_IntersheetRefsShow = m_showIntersheetsReferences->GetValue();
settings.m_IntersheetRefsFormatShort = !m_radioFormatStandard->GetValue();
settings.m_IntersheetRefsPrefix = m_prefixCtrl->GetValue();
@ -152,16 +150,6 @@ bool PANEL_SETUP_FORMATTING::TransferDataFromWindow()
m_labelSizeRatioCtrl->GetValue().ToDouble( &dtmp );
settings.m_LabelSizeRatio = dtmp / 100.0;
m_frame->GetRenderSettings()->SetDefaultPenWidth( settings.m_DefaultLineWidth );
m_frame->GetRenderSettings()->m_LabelSizeRatio = settings.m_LabelSizeRatio;
m_frame->GetRenderSettings()->m_TextOffsetRatio = settings.m_TextOffsetRatio;
m_frame->GetRenderSettings()->m_PinSymbolSize = settings.m_PinSymbolSize;
m_frame->GetRenderSettings()->m_JunctionSize = settings.m_JunctionSize;
m_frame->GetCanvas()->GetView()->MarkDirty();
m_frame->GetCanvas()->GetView()->UpdateAllItems( KIGFX::REPAINT );
m_frame->GetCanvas()->Refresh();
return true;
}

View File

@ -116,6 +116,15 @@ void SCH_EDIT_FRAME::ShowSchematicSetupDialog( const wxString& aInitialPage )
SaveProjectSettings();
Kiway().CommonSettingsChanged( false, true );
GetRenderSettings()->SetDefaultPenWidth( Schematic().Settings().m_DefaultLineWidth );
GetRenderSettings()->m_LabelSizeRatio = Schematic().Settings().m_LabelSizeRatio;
GetRenderSettings()->m_TextOffsetRatio = Schematic().Settings().m_TextOffsetRatio;
GetRenderSettings()->m_PinSymbolSize = Schematic().Settings().m_PinSymbolSize;
GetRenderSettings()->m_JunctionSize = Schematic().Settings().m_JunctionSize;
GetCanvas()->GetView()->MarkDirty();
GetCanvas()->GetView()->UpdateAllItems( KIGFX::REPAINT );
GetCanvas()->Refresh();
}
}