diff options
Diffstat (limited to 'lisp/desktop.el')
| -rw-r--r-- | lisp/desktop.el | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el index ded73c065f0..d420a6416a9 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -174,7 +174,10 @@ For further details, see info node `(emacs)Saving Emacs Sessions'." | |||
| 174 | :global t | 174 | :global t |
| 175 | :group 'desktop | 175 | :group 'desktop |
| 176 | (if desktop-save-mode | 176 | (if desktop-save-mode |
| 177 | (desktop-auto-save-set-timer) | 177 | (when (and (integerp desktop-auto-save-timeout) |
| 178 | (> desktop-auto-save-timeout 0)) | ||
| 179 | (add-hook 'window-configuration-change-hook 'desktop-auto-save-set-timer)) | ||
| 180 | (remove-hook 'window-configuration-change-hook 'desktop-auto-save-set-timer) | ||
| 178 | (desktop-auto-save-cancel-timer))) | 181 | (desktop-auto-save-cancel-timer))) |
| 179 | 182 | ||
| 180 | (defun desktop-save-mode-off () | 183 | (defun desktop-save-mode-off () |
| @@ -207,13 +210,18 @@ determine where the desktop is saved." | |||
| 207 | 210 | ||
| 208 | (defcustom desktop-auto-save-timeout auto-save-timeout | 211 | (defcustom desktop-auto-save-timeout auto-save-timeout |
| 209 | "Number of seconds idle time before auto-save of the desktop. | 212 | "Number of seconds idle time before auto-save of the desktop. |
| 213 | The idle timer activates auto-saving only when window configuration changes. | ||
| 210 | This applies to an existing desktop file when `desktop-save-mode' is enabled. | 214 | This applies to an existing desktop file when `desktop-save-mode' is enabled. |
| 211 | Zero or nil means disable auto-saving due to idleness." | 215 | Zero or nil means disable auto-saving due to idleness." |
| 212 | :type '(choice (const :tag "Off" nil) | 216 | :type '(choice (const :tag "Off" nil) |
| 213 | (integer :tag "Seconds")) | 217 | (integer :tag "Seconds")) |
| 214 | :set (lambda (symbol value) | 218 | :set (lambda (symbol value) |
| 215 | (set-default symbol value) | 219 | (set-default symbol value) |
| 216 | (ignore-errors (desktop-auto-save-set-timer))) | 220 | (ignore-errors |
| 221 | (if (and (integerp value) (> value 0)) | ||
| 222 | (add-hook 'window-configuration-change-hook 'desktop-auto-save-set-timer) | ||
| 223 | (remove-hook 'window-configuration-change-hook 'desktop-auto-save-set-timer) | ||
| 224 | (desktop-auto-save-cancel-timer)))) | ||
| 217 | :group 'desktop | 225 | :group 'desktop |
| 218 | :version "24.4") | 226 | :version "24.4") |
| 219 | 227 | ||
| @@ -1244,7 +1252,7 @@ after that many seconds of idle time." | |||
| 1244 | (when (and (integerp desktop-auto-save-timeout) | 1252 | (when (and (integerp desktop-auto-save-timeout) |
| 1245 | (> desktop-auto-save-timeout 0)) | 1253 | (> desktop-auto-save-timeout 0)) |
| 1246 | (setq desktop-auto-save-timer | 1254 | (setq desktop-auto-save-timer |
| 1247 | (run-with-idle-timer desktop-auto-save-timeout t | 1255 | (run-with-idle-timer desktop-auto-save-timeout nil |
| 1248 | 'desktop-auto-save)))) | 1256 | 'desktop-auto-save)))) |
| 1249 | 1257 | ||
| 1250 | (defun desktop-auto-save-cancel-timer () | 1258 | (defun desktop-auto-save-cancel-timer () |