Don't capture references to local variables for CallAfter.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16934
This commit is contained in:
parent
0ead8a14a1
commit
9d40374baf
|
@ -483,7 +483,7 @@ void EDA_BASE_FRAME::ReCreateMenuBar()
|
|||
* ensure that they do not occur within the same event handling call stack.
|
||||
*/
|
||||
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
if( !m_isClosing )
|
||||
doReCreateMenuBar();
|
||||
|
|
|
@ -133,7 +133,7 @@ PROPERTIES_PANEL::PROPERTIES_PANEL( wxWindow* aParent, EDA_BASE_FRAME* aFrame )
|
|||
Bind( wxEVT_SIZE,
|
||||
[&]( wxSizeEvent& aEvent )
|
||||
{
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
RecalculateSplitterPos();
|
||||
} );
|
||||
|
|
|
@ -80,10 +80,12 @@ void SEARCH_PANE_LISTVIEW::GetSelectRowsList( std::vector<long>& aSelectedList )
|
|||
|
||||
void SEARCH_PANE_LISTVIEW::OnItemActivated( wxListEvent& aEvent )
|
||||
{
|
||||
long item = aEvent.GetIndex();
|
||||
|
||||
CallAfter(
|
||||
[&]()
|
||||
[this, item]()
|
||||
{
|
||||
m_handler->ActivateItem( aEvent.GetIndex() );
|
||||
m_handler->ActivateItem( item );
|
||||
} );
|
||||
|
||||
m_selectionDirty = true;
|
||||
|
|
|
@ -541,7 +541,7 @@ WIDGET_HOTKEY_LIST::WIDGET_HOTKEY_LIST( wxWindow* aParent, HOTKEY_STORE& aHotkey
|
|||
dv->GetColumn( 2 )->SetMinWidth( aParent->GetTextExtent( longKey ).x + pad );
|
||||
dv->GetColumn( 3 )->SetMinWidth( aParent->GetTextExtent( command_header ).x * 5 + pad );
|
||||
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
GetDataView()->Update();
|
||||
} );
|
||||
|
|
|
@ -164,7 +164,7 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( KIWAY* aKiway, wxWindow* aPa
|
|||
|
||||
// Register a call to update the toolbar sizes. It can't be done immediately because
|
||||
// it seems to require some sizes calculated that aren't yet (at least on GTK).
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
// Ensure the controls on the toolbars all are correctly sized
|
||||
UpdateToolbarControlSizes();
|
||||
|
|
|
@ -116,7 +116,7 @@ void SCH_PROPERTIES_PANEL::AfterCommit()
|
|||
|
||||
rebuildProperties( selection );
|
||||
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
m_frame->GetCanvas()->SetFocus();
|
||||
} );
|
||||
|
|
|
@ -198,7 +198,7 @@ GERBVIEW_FRAME::GERBVIEW_FRAME( KIWAY* aKiway, wxWindow* aParent )
|
|||
|
||||
// Register a call to update the toolbar sizes. It can't be done immediately because
|
||||
// it seems to require some sizes calculated that aren't yet (at least on GTK).
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
// Ensure the controls on the toolbars all are correctly sized
|
||||
UpdateToolbarControlSizes();
|
||||
|
|
|
@ -226,10 +226,11 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent )
|
|||
if( response.version != settings->m_lastReceivedUpdate )
|
||||
{
|
||||
aNoticeParent->CallAfter(
|
||||
[&]()
|
||||
[aNoticeParent, response]()
|
||||
{
|
||||
auto notice = new DIALOG_UPDATE_NOTICE(
|
||||
aNoticeParent, response.version, response.details_url,
|
||||
auto notice = new DIALOG_UPDATE_NOTICE( aNoticeParent,
|
||||
response.version,
|
||||
response.details_url,
|
||||
response.downloads_url );
|
||||
|
||||
int retCode = notice->ShowModal();
|
||||
|
@ -238,6 +239,8 @@ void UPDATE_MANAGER::CheckForUpdate( wxWindow* aNoticeParent )
|
|||
{
|
||||
// basically saving the last received update prevents us from
|
||||
// prompting again
|
||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||
KICAD_SETTINGS* settings = mgr.GetAppSettings<KICAD_SETTINGS>();
|
||||
settings->m_lastReceivedUpdate = response.version;
|
||||
}
|
||||
} );
|
||||
|
|
|
@ -223,7 +223,7 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
|
||||
// Register a call to update the toolbar sizes. It can't be done immediately because
|
||||
// it seems to require some sizes calculated that aren't yet (at least on GTK).
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
// Ensure the controls on the toolbars all are correctly sized
|
||||
UpdateToolbarControlSizes();
|
||||
|
|
|
@ -302,7 +302,7 @@ FOOTPRINT_EDIT_FRAME::FOOTPRINT_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
// Register a call to update the toolbar sizes. It can't be done immediately because
|
||||
// it seems to require some sizes calculated that aren't yet (at least on GTK).
|
||||
CallAfter(
|
||||
[&]()
|
||||
[this]()
|
||||
{
|
||||
// Ensure the controls on the toolbars all are correctly sized
|
||||
UpdateToolbarControlSizes();
|
||||
|
|
|
@ -451,7 +451,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
#ifdef __WXMAC__
|
||||
if( Kiface().IsSingle() )
|
||||
{
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
m_appearancePanel->OnBoardChanged();
|
||||
} );
|
||||
|
@ -460,7 +460,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
|
||||
// Register a call to update the toolbar sizes. It can't be done immediately because
|
||||
// it seems to require some sizes calculated that aren't yet (at least on GTK).
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
// Ensure the controls on the toolbars all are correctly sized
|
||||
UpdateToolbarControlSizes();
|
||||
|
|
|
@ -994,7 +994,7 @@ void APPEARANCE_CONTROLS::OnNetGridMouseEvent( wxMouseEvent& aEvent )
|
|||
else if( aEvent.Dragging() )
|
||||
{
|
||||
// not allowed
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
m_netsGrid->ClearSelection();
|
||||
} );
|
||||
|
|
|
@ -122,7 +122,7 @@ void PCB_PROPERTIES_PANEL::AfterCommit()
|
|||
|
||||
rebuildProperties( selection );
|
||||
|
||||
CallAfter( [&]()
|
||||
CallAfter( [this]()
|
||||
{
|
||||
static_cast<PCB_EDIT_FRAME*>( m_frame )->GetCanvas()->SetFocus();
|
||||
} );
|
||||
|
|
|
@ -90,7 +90,10 @@ KIPYTHON_FRAME::KIPYTHON_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE, wxT( "KiPython" ),
|
||||
unityScale )
|
||||
{
|
||||
CallAfter( [&](){ SetupPythonEditor(); } );
|
||||
CallAfter( [this]()
|
||||
{
|
||||
SetupPythonEditor();
|
||||
} );
|
||||
|
||||
redirectStdio();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue