Fixed SetCurrentContext() assert, that was firing on closure of pcbnew, when the OpenGL backend was active.

This commit is contained in:
Maciej Suminski 2013-12-05 14:54:30 +01:00
parent 7985a4b16b
commit 0e7db24049
3 changed files with 14 additions and 0 deletions

View File

@ -184,6 +184,13 @@ void EDA_DRAW_PANEL_GAL::Refresh( bool eraseBackground, const wxRect* rect )
}
void EDA_DRAW_PANEL_GAL::StopDrawing()
{
Disconnect( wxEVT_PAINT, wxPaintEventHandler( EDA_DRAW_PANEL_GAL::onPaint ), NULL, this );
m_refreshTimer.Stop();
}
void EDA_DRAW_PANEL_GAL::SwitchBackend( GalType aGalType )
{
// Protect from refreshing during backend switch

View File

@ -111,6 +111,12 @@ public:
m_eventDispatcher = aEventDispatcher;
}
/**
* Function StopDrawing()
* Prevents the GAL canvas from further drawing till it is recreated.
*/
void StopDrawing();
protected:
void onPaint( wxPaintEvent& WXUNUSED( aEvent ) );
void onSize( wxSizeEvent& aEvent );

View File

@ -556,6 +556,7 @@ void PCB_EDIT_FRAME::OnQuit( wxCommandEvent& event )
void PCB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
{
m_canvas->SetAbortRequest( true );
m_galCanvas->StopDrawing();
if( GetScreen()->IsModify() )
{