From f5b0e20f78fc417f83ab8910854db2fd6ec070f4 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Fri, 3 Mar 2023 00:22:05 +0000 Subject: [PATCH] The screen for undo is the screen that *owns* the SCH_SHEET... ... not the screen the SCH_SHEET owns. Fixes https://gitlab.com/kicad/code/kicad/issues/14099 (cherry picked from commit 5849458476db4011571c3d3651f321a2c04af5e2) --- eeschema/widgets/hierarchy_pane.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/eeschema/widgets/hierarchy_pane.cpp b/eeschema/widgets/hierarchy_pane.cpp index c664d614d5..39238d4e6d 100644 --- a/eeschema/widgets/hierarchy_pane.cpp +++ b/eeschema/widgets/hierarchy_pane.cpp @@ -290,8 +290,11 @@ void HIERARCHY_PANE::onRightClick( wxTreeEvent& aEvent ) if( dlg.ShowModal() == wxID_OK && dlg.GetValue() != itemData->m_SheetPath.GetPageNumber() ) { - m_frame->SaveCopyInUndoList( itemData->m_SheetPath.LastScreen(), - itemData->m_SheetPath.Last(), UNDO_REDO::CHANGED, false ); + SCH_SHEET_PATH parentPath = itemData->m_SheetPath; + parentPath.pop_back(); + + m_frame->SaveCopyInUndoList( parentPath.LastScreen(), itemData->m_SheetPath.Last(), + UNDO_REDO::CHANGED, false ); itemData->m_SheetPath.SetPageNumber( dlg.GetValue() );