trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

Bug Report 922: "When logging out with unsaved file, trinity does not ask to save it"

From: Darrell Anderson <humanreadable@...>
Date: Sat, 31 Mar 2012 19:00:35 -0700 (PDT)
To anybody interested in bug report 922, "when logging out with unsaved file, trinity does not ask to save it":

There is a temporary work-around:

In $TDEHOME/share/config/ksmserver, add the following:

[Logout]
showFancyLogout=false

That key controls the gray fade effect feature when the user has "Confirm logout" enabled in the Session Manager module. The gray fade effect was part of KDE3. The underlying ksmserver configuration options were added in Trinity. Not yet implemented are the KControl user controls.

Calvin is working on that, which will resolve bug report 258. Those new KControl options will provide a user-direct method to change the showFancyLogout feature.

Setting showFancyLogout=false disables the fade effect but serves as a temporary work-around to apps not saving files when the user decides to logout of the session.

The problem occurs in tdebase/ksmserver/shutdown.cpp, starting at line 164.

The code there reads the value of showFancyLogout and defaults to true when the value is not found. Because the KControl options do not yet exist, almost nobody has those keys in their user's ksmserver configuration file. Therefore the code always defaults to true.

Setting the internal code variable to true starts the non modal feedback dialog "Saving your settings..." and ignores any apps trying to save. Setting showFancyLogout=false forces the code not to show the feedback dialog. That non-event allows the normal logout to occur, regardless of how the user responds to any app's request to save files.

In addition to bug report being connected to bug report 258, this ties into bug report 681, which requests a KControl option to enable or disable the feedback dialog.

Yet after resolving bug reports 258 and 681, some C++ hacking is required to resolve bug report 922 and permanently fix the logic in tdebase/ksmserver/shutdown.cpp. The work-around offered here succeeds only when showFancyLogout=false and does not help when showFancyLogout=true or is missing.

Darrell