aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuri Linkov2014-06-07 02:38:40 +0300
committerJuri Linkov2014-06-07 02:38:40 +0300
commit7f11800984ed1805caaba36cd67d5dcc7c394d1d (patch)
tree24311f2152f34bb1f390ed338a0ac26d295436f2
parentf4be80b783f23a54b18dfe43ca649a2f4f31b2a5 (diff)
downloademacs-7f11800984ed1805caaba36cd67d5dcc7c394d1d.tar.gz
emacs-7f11800984ed1805caaba36cd67d5dcc7c394d1d.zip
* lisp/desktop.el: Activate auto-saving on window configuration changes.
(desktop-save-mode, desktop-auto-save-timeout): Add/remove `desktop-auto-save-set-timer' to/from `window-configuration-change-hook'. (desktop-auto-save-set-timer): Change REPEAT arg of `run-with-idle-timer' from t to nil. http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00147.html
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/desktop.el14
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 @@
12014-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
12014-06-06 Santiago PayĆ  i Miralta <santiagopim@gmail.com> 102014-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.
213The idle timer activates auto-saving only when window configuration changes.
210This applies to an existing desktop file when `desktop-save-mode' is enabled. 214This applies to an existing desktop file when `desktop-save-mode' is enabled.
211Zero or nil means disable auto-saving due to idleness." 215Zero 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 ()