Browse Source

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

pull/1/head
Maciej Suminski 12 years ago
parent
commit
0e7db24049
  1. 7
      common/drawpanel_gal.cpp
  2. 6
      include/class_drawpanel_gal.h
  3. 1
      pcbnew/pcbframe.cpp

7
common/drawpanel_gal.cpp

@ -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

6
include/class_drawpanel_gal.h

@ -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 );

1
pcbnew/pcbframe.cpp

@ -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() )
{

Loading…
Cancel
Save