Because this bug affected me, I backported the patch from Digikam 6.0 to
the buster digikam version
Applies cleanly & fixes the problem.
--- a/core/app/main/digikamapp.cpp
+++ b/core/app/main/digikamapp.cpp
@@ -497,7 +497,6 @@
MetadataHubMngr::instance()->requestShutDown();
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void DigikamApp::autoDetect()
--- a/core/libs/widgets/mainview/dxmlguiwindow.cpp
+++ b/core/libs/widgets/mainview/dxmlguiwindow.cpp
@@ -209,10 +209,18 @@
void DXmlGuiWindow::closeEvent(QCloseEvent* e)
{
- if(fullScreenIsActive())
+ if (fullScreenIsActive())
slotToggleFullScreen(false);
+ if (!testAttribute(Qt::WA_DeleteOnClose))
+ {
+ setVisible(false);
+ e->ignore();
+ return;
+ }
+
KXmlGuiWindow::closeEvent(e);
+ e->accept();
}
void DXmlGuiWindow::setFullScreenOptions(int options)
--- a/core/utilities/imageeditor/main/imagewindow.cpp
+++ b/core/utilities/imageeditor/main/imagewindow.cpp
@@ -254,14 +254,13 @@
KSharedConfig::Ptr config = KSharedConfig::openConfig();
KConfigGroup group = config->group(configGroupName());
- saveMainWindowSettings(group);
- saveSettings();
d->rightSideBar->setConfigGroup(KConfigGroup(&group, "Right Sidebar"));
d->rightSideBar->saveState();
+ saveSettings();
+
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void ImageWindow::showEvent(QShowEvent*)
--- a/core/utilities/importui/main/importui.cpp
+++ b/core/utilities/importui/main/importui.cpp
@@ -964,11 +964,9 @@
void ImportUI::closeEvent(QCloseEvent* e)
{
- DXmlGuiWindow::closeEvent(e);
-
if (dialogClosed())
{
- e->accept();
+ DXmlGuiWindow::closeEvent(e);
}
else
{
--- a/core/utilities/lighttable/lighttablewindow.cpp
+++ b/core/utilities/lighttable/lighttablewindow.cpp
@@ -249,7 +249,6 @@
writeSettings();
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void LightTableWindow::showEvent(QShowEvent*)
--- a/core/utilities/queuemanager/main/queuemgrwindow.cpp
+++ b/core/utilities/queuemanager/main/queuemgrwindow.cpp
@@ -164,8 +164,8 @@
}
writeSettings();
+
DXmlGuiWindow::closeEvent(e);
- e->accept();
}
void QueueMgrWindow::setupUserArea()