From 6821e81fcf6c4139e8d5c09b0ae3fb0b450b32db Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 23 May 2012 18:20:09 -0500 Subject: [PATCH] Make absolutely sure that kdesktop_lock reads recently changed configuration files when starting up (cherry picked from commit de4e7b41598b4c8db0948e4c2c216d73e952f7bb) --- kdesktop/lock/main.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc index 2b590c118..748b67f1c 100644 --- a/kdesktop/lock/main.cc +++ b/kdesktop/lock/main.cc @@ -38,6 +38,15 @@ #include #include +#define OPEN_TDMCONFIG_AND_SET_GROUP \ +if( stat( KDE_CONFDIR "/kdm/kdmdistrc" , &st ) == 0) { \ + tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/kdm/kdmdistrc" )); \ +} \ +else { \ + tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/kdm/kdmrc" )); \ +} \ +tdmconfig->setGroup("X-*-Greeter"); + // [FIXME] Add GUI configuration checkboxes for these three settings (see kdesktoprc [ScreenSaver] UseUnmanagedLockWindows, DelaySaverStart, and UseTDESAK) bool trinity_desktop_lock_use_system_modal_dialogs = FALSE; bool trinity_desktop_lock_delay_screensaver_start = FALSE; @@ -203,13 +212,7 @@ int main( int argc, char **argv ) struct stat st; KSimpleConfig* tdmconfig; - if( stat( KDE_CONFDIR "/kdm/kdmdistrc" , &st ) == 0) { - tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/kdm/kdmdistrc" )); - } - else { - tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/kdm/kdmrc" )); - } - tdmconfig->setGroup("X-*-Greeter"); + OPEN_TDMCONFIG_AND_SET_GROUP trinity_desktop_lock_use_sak = tdmconfig->readBoolEntry("UseSAK", true); LockProcess process; @@ -270,7 +273,8 @@ int main( int argc, char **argv ) // Reload settings to make sure they reflect reality KDesktopSettings::self()->config()->reparseConfiguration(); - tdmconfig->reparseConfiguration(); + delete tdmconfig; + OPEN_TDMCONFIG_AND_SET_GROUP trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows(); trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart(); if (trinity_desktop_lock_use_system_modal_dialogs) {