diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 8e4a58f33b..5d9661ecbb 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -2414,12 +2414,29 @@ void RiaApplication::slotRecaulculateCompletionType() { std::set uniqueCases(m_eclipseCasesToRecalculate.begin(), m_eclipseCasesToRecalculate.end()); + RimView* activeView = RiaApplication::instance()->activeReservoirView(); + QModelIndex mi = RiuMainWindow::instance()->projectTreeView()->treeView()->currentIndex(); + for (RimEclipseCase* eclipseCase : uniqueCases) { eclipseCase->recalculateCompletionTypeAndRedrawAllViews(); } m_eclipseCasesToRecalculate.clear(); + + // Recalculation of completion type causes active view to be set to potentially a different view + // Also current index in project tree is changed. Restore both to initial state. + + if (activeView && activeView->viewer()) + { + RiaApplication::instance()->setActiveReservoirView(activeView); + RiuMainWindow::instance()->setActiveViewer(activeView->viewer()->layoutWidget()); + } + + if (mi.isValid()) + { + RiuMainWindow::instance()->projectTreeView()->treeView()->setCurrentIndex(mi); + } } //--------------------------------------------------------------------------------------------------