diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 61b8f21df8..643076db79 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -755,10 +755,19 @@ void OverlayTabWidget::restore(ParameterGrp::handle handle) hGrp = handle; return; } - if (!parentWidget()) - return; - std::string widgets = handle->GetASCII("Widgets", getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : ""); + if (!parentWidget()) { + return; + } + + const char* defaultWidgets = ""; + + // If overlay was ever used and disabled by the user it should respect that choice + if (handle->GetInt("Width", 0) == 0 || handle->GetInt("Height", 0) == 0) { + defaultWidgets = getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : ""; + } + + std::string widgets = handle->GetASCII("Widgets", defaultWidgets); for(auto &name : QString::fromUtf8(widgets.c_str()).split(QLatin1Char(','))) { if(name.isEmpty())