diff --git a/gmenu-dbusmenu-proxy/main.cpp b/gmenu-dbusmenu-proxy/main.cpp index 632321289..cd32b10f6 100644 --- a/gmenu-dbusmenu-proxy/main.cpp +++ b/gmenu-dbusmenu-proxy/main.cpp @@ -18,6 +18,7 @@ */ #include +#include #include @@ -28,7 +29,6 @@ int main(int argc, char ** argv) qputenv("QT_QPA_PLATFORM", "xcb"); QGuiApplication::setDesktopSettingsAware(false); - QCoreApplication::setAttribute(Qt::AA_DisableSessionManager); QGuiApplication app(argc, argv); @@ -36,6 +36,12 @@ int main(int argc, char ** argv) qFatal("qdbusmenuproxy is only useful XCB. Aborting"); } + auto disableSessionManagement = [](QSessionManager &sm) { + sm.setRestartHint(QSessionManager::RestartNever); + }; + QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); + QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); + app.setQuitOnLastWindowClosed(false); MenuProxy proxy; diff --git a/krunner/main.cpp b/krunner/main.cpp index cbf0dff83..bbf20743e 100644 --- a/krunner/main.cpp +++ b/krunner/main.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -41,7 +42,6 @@ int main(int argc, char **argv) { QCommandLineParser parser; - QCoreApplication::setAttribute(Qt::AA_DisableSessionManager); if (!qEnvironmentVariableIsSet("PLASMA_USE_QT_SCALING")) { qunsetenv("QT_DEVICE_PIXEL_RATIO"); QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); @@ -93,6 +93,14 @@ int main(int argc, char **argv) KDBusService service(KDBusService::Unique | KDBusService::StartupOption(parser.isSet(replaceOption) ? KDBusService::Replace : 0)); + QGuiApplication::setFallbackSessionManagementEnabled(false); + + auto disableSessionManagement = [](QSessionManager &sm) { + sm.setRestartHint(QSessionManager::RestartNever); + }; + QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); + QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); + View view; auto updateVisibility = [&]() { diff --git a/shell/main.cpp b/shell/main.cpp index 1000b5a97..d82993271 100644 --- a/shell/main.cpp +++ b/shell/main.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -83,7 +84,6 @@ int main(int argc, char *argv[]) } else { QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); } - QCoreApplication::setAttribute(Qt::AA_DisableSessionManager); QQuickWindow::setDefaultAlphaBuffer(true); @@ -162,6 +162,14 @@ int main(int argc, char *argv[]) cliOptions.process(app); aboutData.processCommandLine(&cliOptions); + QGuiApplication::setFallbackSessionManagementEnabled(false); + + auto disableSessionManagement = [](QSessionManager &sm) { + sm.setRestartHint(QSessionManager::RestartNever); + }; + QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); + QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); + ShellCorona* corona = new ShellCorona(&app); corona->setShell(cliOptions.value(shellPluginOption)); diff --git a/xembed-sni-proxy/main.cpp b/xembed-sni-proxy/main.cpp index 05fd6bf32..8b0078234 100644 --- a/xembed-sni-proxy/main.cpp +++ b/xembed-sni-proxy/main.cpp @@ -19,6 +19,7 @@ */ #include +#include #include "fdoselectionmanager.h" @@ -41,7 +42,6 @@ int main(int argc, char ** argv) qputenv("QT_QPA_PLATFORM", "xcb"); QGuiApplication::setDesktopSettingsAware(false); - QCoreApplication::setAttribute(Qt::AA_DisableSessionManager); QGuiApplication app(argc, argv); @@ -49,6 +49,12 @@ int main(int argc, char ** argv) qFatal("xembed-sni-proxy is only useful XCB. Aborting"); } + auto disableSessionManagement = [](QSessionManager &sm) { + sm.setRestartHint(QSessionManager::RestartNever); + }; + QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); + QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); + app.setQuitOnLastWindowClosed(false); qDBusRegisterMetaType();