diff --git a/src/core/MainWindow.cpp b/src/core/MainWindow.cpp index 24fa46c3e..03757c5fd 100644 --- a/src/core/MainWindow.cpp +++ b/src/core/MainWindow.cpp @@ -529,6 +529,7 @@ void MainWindow::moveToSideBar(Core::DockWidget *dw, SideBarLocation location) if (Core::SideBar *sb = sideBar(location)) { ScopedValueRollback rollback(dw->d->m_isMovingToSideBar, true); + CloseReasonSetter reason(CloseReason::PinButton); dw->forceClose(); sb->addDockWidget(dw); } else { diff --git a/tests/qtwidgets/tst_qtwidgets.cpp b/tests/qtwidgets/tst_qtwidgets.cpp index cdcf1ad07..8315afbc1 100644 --- a/tests/qtwidgets/tst_qtwidgets.cpp +++ b/tests/qtwidgets/tst_qtwidgets.cpp @@ -1233,6 +1233,11 @@ void TestQtWidgets::tst_sidebarCloseReason() expectedLastReason = CloseReason::TitleBarCloseButton; dw1->titleBar()->onCloseClicked(); QCOMPARE(dw1->lastCloseReason(), expectedLastReason); + + expectedLastReason = CloseReason::PinButton; + dw1->open(); + m1->moveToSideBar(dw1); + QCOMPARE(dw1->lastCloseReason(), expectedLastReason); } }