diff options
| -rw-r--r-- | lisp/ChangeLog | 9 | ||||
| -rw-r--r-- | lisp/desktop.el | 14 |
2 files changed, 20 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a3f061a7d93..6e89afc6715 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2014-06-06 Juri Linkov <juri@jurta.org> | ||
| 2 | |||
| 3 | * desktop.el: Activate auto-saving on window configuration changes. | ||
| 4 | (desktop-save-mode, desktop-auto-save-timeout): Add/remove | ||
| 5 | `desktop-auto-save-set-timer' to/from `window-configuration-change-hook'. | ||
| 6 | (desktop-auto-save-set-timer): Change REPEAT arg of | ||
| 7 | `run-with-idle-timer' from t to nil. | ||
| 8 | http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00147.html | ||
| 9 | |||
| 1 | 2014-06-06 Santiago PayĆ i Miralta <santiagopim@gmail.com> | 10 | 2014-06-06 Santiago PayĆ i Miralta <santiagopim@gmail.com> |
| 2 | 11 | ||
| 3 | * vc/vc-hg.el (vc-hg-working-revision): Use "hg parent" and | 12 | * vc/vc-hg.el (vc-hg-working-revision): Use "hg parent" and |
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 () |