diff --git a/src/core/MainWindow.cpp b/src/core/MainWindow.cpp index d7850767..49ba0681 100644 --- a/src/core/MainWindow.cpp +++ b/src/core/MainWindow.cpp @@ -677,7 +677,8 @@ void MainWindow::readSettingsOrDefault() // make sure all DockWidgets are part of the MainWindow // also show them, so newly installed plugin widgets are shown right away for (auto dockWidget : dockWidgets) { - if (dockWidgetArea(dockWidget) == Qt::DockWidgetArea::NoDockWidgetArea) { + if (dockWidgetArea(dockWidget) == Qt::DockWidgetArea::NoDockWidgetArea && + !isDebugWidget(dockWidget)) { addDockWidget(Qt::DockWidgetArea::TopDockWidgetArea, dockWidget); dockWidget->show(); } @@ -865,6 +866,18 @@ void MainWindow::updateDockActionsChecked() } } +bool MainWindow::isDebugWidget(QDockWidget *dock) const +{ + return dock == stackDock || + dock == registersDock || + dock == backtraceDock || + dock == threadsDock || + dock == memoryMapDock || + dock == breakpointDock || + dock == processesDock || + dock == registerRefsDock; +} + MemoryWidgetType MainWindow::getMemoryWidgetTypeToRestore() { if (lastSyncMemoryWidget) { diff --git a/src/core/MainWindow.h b/src/core/MainWindow.h index 5c9b9841..1396ccaf 100644 --- a/src/core/MainWindow.h +++ b/src/core/MainWindow.h @@ -288,6 +288,12 @@ private: void updateDockActionsChecked(); void setOverviewData(); bool isOverviewActive(); + /** + * @brief Check if a widget is one of debug specific dock widgets. + * @param dock + * @return true for debug specific widgets, false for all other including common dock widgets. + */ + bool isDebugWidget(QDockWidget *dock) const; MemoryWidgetType getMemoryWidgetTypeToRestore();