diff --git a/eeschema/viewlib_frame.cpp b/eeschema/viewlib_frame.cpp index 047b0cf1de..2b10c9ca0a 100644 --- a/eeschema/viewlib_frame.cpp +++ b/eeschema/viewlib_frame.cpp @@ -703,14 +703,19 @@ void LIB_VIEW_FRAME::CommonSettingsChanged( bool aEnvVarsChanged ) void LIB_VIEW_FRAME::OnActivate( wxActivateEvent& event ) { - bool changed = m_libList ? ReCreateListLib() : false; + if( event.GetActive() ) + { + bool changed = m_libList ? ReCreateListLib() : false; - if (changed) - m_selection_changed = true; + if (changed) + m_selection_changed = true; - updatePreviewSymbol(); + updatePreviewSymbol(); - DisplayLibInfos(); + DisplayLibInfos(); + } + + event.Skip(); // required under wxMAC } diff --git a/pcbnew/footprint_viewer_frame.cpp b/pcbnew/footprint_viewer_frame.cpp index 3c0b3c9461..f7000d58ec 100644 --- a/pcbnew/footprint_viewer_frame.cpp +++ b/pcbnew/footprint_viewer_frame.cpp @@ -751,30 +751,34 @@ void FOOTPRINT_VIEWER_FRAME::setCurFootprintName( const wxString& aName ) void FOOTPRINT_VIEWER_FRAME::OnActivate( wxActivateEvent& event ) { - // Ensure we do not have old selection: - if( !event.GetActive() ) - return; - - // Ensure we have the right library list: - std::vector< wxString > libNicknames = Prj().PcbFootprintLibs()->GetLogicalLibs(); - - if( libNicknames.size() == m_libList->GetCount() ) + if( event.GetActive() ) { - unsigned ii; + // Ensure we have the right library list: + std::vector< wxString > libNicknames = Prj().PcbFootprintLibs()->GetLogicalLibs(); + bool stale = false; - for( ii = 0; ii < libNicknames.size(); ii++ ) + if( libNicknames.size() != m_libList->GetCount() ) + stale = true; + else { - if( libNicknames[ii] != m_libList->GetString( ii ) ) - break; + for( unsigned ii = 0; ii < libNicknames.size(); ii++ ) + { + if( libNicknames[ii] != m_libList->GetString( ii ) ) + { + stale = true; + break; + } + } } - if( ii == libNicknames.size() ) - return; + if( stale ) + { + ReCreateLibraryList(); + UpdateTitle(); + } } - // If we are here, the library list has changed, rebuild it - ReCreateLibraryList(); - UpdateTitle(); + event.Skip(); // required under wxMAC }