PagePartSelectionTracker::~PagePartSelectionTracker() { IWorkbenchPage::Pointer page = GetPage(); page->GetWorkbenchWindow()->RemovePerspectiveListener(perspListener.data()); page->RemovePartListener(partListener.data()); this->SetPart(IWorkbenchPart::Pointer(nullptr), false); this->SetPage(nullptr); }