Fix logout dialog appearing during client interaction

pull/2/head
Timothy Pearson 11 years ago
parent 1260c7da1a
commit da560698f1

@ -439,6 +439,7 @@ void KSMServer::saveYourselfDone( KSMClient* client, bool success )
}
}
notificationTimer.stop();
updateLogoutStatusDialog();
}
@ -454,6 +455,9 @@ void KSMServer::updateLogoutStatusDialog()
pendingInteraction = true;
}
}
if (clientInteracting) {
pendingInteraction = true;
}
if (shutdownNotifierIPDlg) {
int waitingClients = 0;
@ -477,6 +481,9 @@ void KSMServer::updateLogoutStatusDialog()
}
if (inPhase2) {
if (phase2ClientCount > 0) {
if (!notificationTimer.isActive()) {
notificationTimer.start( KSMSERVER_NOTIFICATION_MANUAL_OPTIONS_TIMEOUT, true );
}
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->show();
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setNotificationActionButtonsSkipText(i18n("Skip Notification (%1)").arg(((KSMSERVER_SHUTDOWN_CLIENT_UNRESPONSIVE_TIMEOUT - (protectionTimerCounter*1000))/1000)+1));
if (nextClientToKill == "") {
@ -489,8 +496,16 @@ void KSMServer::updateLogoutStatusDialog()
}
else {
if (pendingInteraction) {
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->hide();
#if 0
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setNotificationActionButtonsSkipText(i18n("Ignore and Resume Logout"));
#else
// Hide dialog and buttons
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->hide();
notificationTimer.stop();
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->hideNotificationActionButtons();
disconnect(shutdownNotifierIPDlg, SIGNAL(abortLogoutClicked()), this, SLOT(cancelShutdown()));
disconnect(shutdownNotifierIPDlg, SIGNAL(skipNotificationClicked()), this, SLOT(forceSkipSaveYourself()));
#endif
if (nextClientToKill == "") {
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setStatusMessage(i18n("An application is requesting attention, logout paused..."));
}
@ -499,6 +514,9 @@ void KSMServer::updateLogoutStatusDialog()
}
}
else {
if (!notificationTimer.isActive()) {
notificationTimer.start( KSMSERVER_NOTIFICATION_MANUAL_OPTIONS_TIMEOUT, true );
}
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->show();
static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setNotificationActionButtonsSkipText(i18n("Skip Notification (%1)").arg(((KSMSERVER_SHUTDOWN_CLIENT_UNRESPONSIVE_TIMEOUT - (protectionTimerCounter*1000))/1000)+1));
if (nextClientToKill == "") {

Loading…
Cancel
Save