diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp index 3abb11cb88..011533cb48 100644 --- a/eeschema/sch_base_frame.cpp +++ b/eeschema/sch_base_frame.cpp @@ -86,7 +86,8 @@ SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aWindo const wxSize& aSize, long aStyle, const wxString& aFrameName ) : EDA_DRAW_FRAME( aKiway, aParent, aWindowType, aTitle, aPosition, aSize, aStyle, aFrameName ), - m_base_frame_defaults( nullptr, "base_Frame_defaults" ) + m_base_frame_defaults( nullptr, "base_Frame_defaults" ), + m_spaceMouse( nullptr ) { createCanvas(); @@ -106,6 +107,15 @@ SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aWindo } +SCH_BASE_FRAME::~SCH_BASE_FRAME() +{ +#if defined( KICAD_USE_3DCONNEXION ) + if( m_spaceMouse != nullptr ) + delete m_spaceMouse; +#endif +} + + SCH_SCREEN* SCH_BASE_FRAME::GetScreen() const { return (SCH_SCREEN*) EDA_DRAW_FRAME::GetScreen(); @@ -294,7 +304,7 @@ void SCH_BASE_FRAME::ActivateGalCanvas() { if( !m_spaceMouse ) { - m_spaceMouse = std::make_unique(); + m_spaceMouse = new NL_SCHEMATIC_PLUGIN(); } m_spaceMouse->SetCanvas( GetCanvas() ); diff --git a/eeschema/sch_base_frame.h b/eeschema/sch_base_frame.h index 568f869ddd..630df6ebbb 100644 --- a/eeschema/sch_base_frame.h +++ b/eeschema/sch_base_frame.h @@ -96,8 +96,7 @@ public: const wxPoint& aPosition, const wxSize& aSize, long aStyle, const wxString & aFrameName ); - virtual ~SCH_BASE_FRAME() - { } + virtual ~SCH_BASE_FRAME(); void createCanvas(); @@ -264,7 +263,7 @@ protected: private: #if defined( KICAD_USE_3DCONNEXION ) - std::unique_ptr m_spaceMouse; + NL_SCHEMATIC_PLUGIN* m_spaceMouse; #endif };