diff --git a/src/Gui/DlgSettingsNavigation.cpp b/src/Gui/DlgSettingsNavigation.cpp index 6579a6ffdb..b571639abb 100644 --- a/src/Gui/DlgSettingsNavigation.cpp +++ b/src/Gui/DlgSettingsNavigation.cpp @@ -112,13 +112,20 @@ void DlgSettingsNavigation::saveSettings() "User parameter:BaseApp/Preferences/NaviCube"); hGrp->SetASCII("FontString", ui->naviCubeFontName->currentText().toLatin1()); + recreateNaviCubes(); +} + +void DlgSettingsNavigation::recreateNaviCubes() +{ // we changed the cube's layout, therefore we must re-initialize it // by deleting and the subsequently recreating - auto mdi = qobject_cast(getMainWindow()->activeWindow()); - if (mdi) { - auto currentView = mdi->getViewer(); - currentView->deleteNavigationCube(); - currentView->createNavigationCube(); + auto views = getMainWindow()->windows(); + for (auto view : views) { + if (auto view3d = qobject_cast(view)) { + auto viewer = view3d->getViewer(); + viewer->deleteNavigationCube(); + viewer->createNavigationCube(); + } } } diff --git a/src/Gui/DlgSettingsNavigation.h b/src/Gui/DlgSettingsNavigation.h index dd305ea669..8143a39b86 100644 --- a/src/Gui/DlgSettingsNavigation.h +++ b/src/Gui/DlgSettingsNavigation.h @@ -53,6 +53,7 @@ public: private: void onMouseButtonClicked(); void onNewDocViewChanged(int); + void recreateNaviCubes(); protected: void changeEvent(QEvent *e) override;