diff --git a/kaccess/main.cpp b/kaccess/main.cpp --- a/kaccess/main.cpp +++ b/kaccess/main.cpp @@ -26,13 +26,16 @@ #include #include #include +#include extern "C" Q_DECL_EXPORT int kdemain(int argc, char * argv[]) { Kdelibs4ConfigMigrator migrate(QStringLiteral("kaccess")); migrate.setConfigFiles(QStringList() << QStringLiteral("kaccessrc")); migrate.migrate(); + QGuiApplication::setFallbackSessionManagementEnabled(false); + K4AboutData about(I18N_NOOP("kaccess"), 0, ki18n("KDE Accessibility Tool"), 0, KLocalizedString(), K4AboutData::License_GPL, ki18n("(c) 2000, Matthias Hoelzer-Kluepfel")); @@ -63,6 +66,14 @@ return 1; } + auto disableSessionManagement = [](QSessionManager &sm) { + sm.setRestartHint(QSessionManager::RestartNever); + }; + + QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); + QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); + + // verify the X server has matching XKB extension // if yes, the XKB extension is initialized int opcode_rtrn;