diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index 2bad600a02..338cae5bc6 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -583,9 +583,12 @@ SCH_SHEET_PATH& SCH_EDIT_FRAME::GetCurrentSheet() void SCH_EDIT_FRAME::SetCurrentSheet( const SCH_SHEET_PATH& aSheet ) { - auto c = static_cast(m_canvas); - *m_CurrentSheet = aSheet; - c->DisplaySheet( m_CurrentSheet->LastScreen() ); + if( aSheet != *m_CurrentSheet ) + { + *m_CurrentSheet = aSheet; + + static_cast( m_canvas )->DisplaySheet( m_CurrentSheet->LastScreen() ); + } } diff --git a/eeschema/sch_reference_list.h b/eeschema/sch_reference_list.h index 3dd7c7432b..869285cd6d 100644 --- a/eeschema/sch_reference_list.h +++ b/eeschema/sch_reference_list.h @@ -97,7 +97,7 @@ public: LIB_PART* GetLibPart() const { return m_Entry; } - SCH_SHEET_PATH GetSheetPath() const { return m_SheetPath; } + const SCH_SHEET_PATH& GetSheetPath() const { return m_SheetPath; } int GetUnit() const { return m_Unit; }