Prevent UI updates from changing zoom selection

The zoom selection should only change when requested by the user, not in
response to UI updates.  This can cause unexpected zoom shifts when the
calculated zoom is within a range of one of the presets.  It also adds
unneeded calls during the UI update cycle

Fixes https://gitlab.com/kicad/code/kicad/issues/10498
This commit is contained in:
Seth Hillbrand 2022-01-20 10:07:50 -08:00
parent d9c6765be7
commit 6810479a19
2 changed files with 0 additions and 30 deletions

View File

@ -72,7 +72,6 @@
BEGIN_EVENT_TABLE( EDA_DRAW_FRAME, KIWAY_PLAYER )
EVT_UPDATE_UI( ID_ON_GRID_SELECT, EDA_DRAW_FRAME::OnUpdateSelectGrid )
EVT_UPDATE_UI( ID_ON_ZOOM_SELECT, EDA_DRAW_FRAME::OnUpdateSelectZoom )
EVT_ACTIVATE( EDA_DRAW_FRAME::onActivate )
END_EVENT_TABLE()
@ -452,30 +451,6 @@ void EDA_DRAW_FRAME::UpdateZoomSelectBox()
}
void EDA_DRAW_FRAME::OnUpdateSelectZoom( wxUpdateUIEvent& aEvent )
{
if( m_zoomSelectBox == nullptr || m_zoomSelectBox->GetParent() == nullptr )
return;
int current = 0; // display Auto if no match found
// check for a match within 1%
double zoom = GetCanvas()->GetGAL()->GetZoomFactor();
for( unsigned i = 0; i < config()->m_Window.zoom_factors.size(); i++ )
{
if( std::fabs( zoom - config()->m_Window.zoom_factors[i] ) < ( zoom / 100.0 ) )
{
current = i + 1;
break;
}
}
if( current != m_zoomSelectBox->GetSelection() )
m_zoomSelectBox->SetSelection( current );
}
void EDA_DRAW_FRAME::OnSelectZoom( wxCommandEvent& event )
{
wxCHECK_RET( m_zoomSelectBox, "m_zoomSelectBox uninitialized" );

View File

@ -257,11 +257,6 @@ public:
*/
void UpdateZoomSelectBox();
/**
* Update the checked item in the zoom combobox.
*/
void OnUpdateSelectZoom( wxUpdateUIEvent& aEvent );
/**
* Return a human readable value for display in dialogs.
*/