Defer canvas type setting save until destruction of EDA_DRAW_FRAME
Fixes: lp:1741787 * https://bugs.launchpad.net/kicad/+bug/1741787
This commit is contained in:
parent
47d392d83e
commit
b21f301097
|
@ -142,6 +142,8 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( KIWAY* aKiway, wxWindow* aParent,
|
||||||
m_hotkeysDescrList = NULL;
|
m_hotkeysDescrList = NULL;
|
||||||
|
|
||||||
m_canvas = NULL;
|
m_canvas = NULL;
|
||||||
|
m_canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE;
|
||||||
|
m_canvasTypeDirty = false;
|
||||||
m_galCanvas = NULL;
|
m_galCanvas = NULL;
|
||||||
m_galCanvasActive = false;
|
m_galCanvasActive = false;
|
||||||
m_actions = NULL;
|
m_actions = NULL;
|
||||||
|
@ -216,6 +218,9 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( KIWAY* aKiway, wxWindow* aParent,
|
||||||
|
|
||||||
EDA_DRAW_FRAME::~EDA_DRAW_FRAME()
|
EDA_DRAW_FRAME::~EDA_DRAW_FRAME()
|
||||||
{
|
{
|
||||||
|
if( m_canvasTypeDirty )
|
||||||
|
saveCanvasTypeSetting( m_canvasType );
|
||||||
|
|
||||||
delete m_actions;
|
delete m_actions;
|
||||||
delete m_toolManager;
|
delete m_toolManager;
|
||||||
delete m_toolDispatcher;
|
delete m_toolDispatcher;
|
||||||
|
|
|
@ -563,10 +563,12 @@ void GERBVIEW_FRAME::SwitchCanvas( wxCommandEvent& aEvent )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
saveCanvasTypeSetting( canvasType );
|
|
||||||
UseGalCanvas( use_gal );
|
UseGalCanvas( use_gal );
|
||||||
wxUpdateUIEvent e;
|
wxUpdateUIEvent e;
|
||||||
OnUpdateSwitchCanvas( e );
|
OnUpdateSwitchCanvas( e );
|
||||||
|
|
||||||
|
m_canvasType = canvasType;
|
||||||
|
m_canvasTypeDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,12 @@ protected:
|
||||||
/// One-shot to avoid a recursive mouse event during hotkey movement
|
/// One-shot to avoid a recursive mouse event during hotkey movement
|
||||||
bool m_movingCursorWithKeyboard;
|
bool m_movingCursorWithKeyboard;
|
||||||
|
|
||||||
|
/// Flag indicating that drawing canvas type needs to be saved to config
|
||||||
|
bool m_canvasTypeDirty;
|
||||||
|
|
||||||
|
/// The current canvas type
|
||||||
|
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType;
|
||||||
|
|
||||||
void SetScreen( BASE_SCREEN* aScreen ) { m_currentScreen = aScreen; }
|
void SetScreen( BASE_SCREEN* aScreen ) { m_currentScreen = aScreen; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -975,7 +975,9 @@ void PCB_BASE_FRAME::SwitchCanvas( wxCommandEvent& aEvent )
|
||||||
}
|
}
|
||||||
|
|
||||||
UseGalCanvas( use_gal );
|
UseGalCanvas( use_gal );
|
||||||
saveCanvasTypeSetting( canvasType );
|
|
||||||
|
m_canvasType = canvasType;
|
||||||
|
m_canvasTypeDirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue