diff options
author | Sam Steingold <sds@gnu.org> | 2016-10-15 23:14:48 -0400 |
---|---|---|
committer | Sam Steingold <sds@gnu.org> | 2016-10-15 23:14:48 -0400 |
commit | cd726ef68ece4fff6772bd08c0051c294e925505 (patch) | |
tree | 723e44a221ee89dabf6112ed3929227303a88775 /lisp | |
parent | cf566b46a6cf85c6d54d0b0db80e32ed6ae8d1ca (diff) | |
download | emacs-cd726ef68ece4fff6772bd08c0051c294e925505.tar.gz |
Save and restore buffer-display-time
* desktop.el (desktop-locals-to-save): Add `buffer-display-time'
(desktop-read): Set `desktop-file-modtime' before loading the desktop file
(desktop-create-buffer): Adjust `buffer-display-time' for the downtime
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/desktop.el | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el index df4ff551c2d..9fb8393e76c 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -367,6 +367,7 @@ these won't be deleted." column-number-mode size-indication-mode buffer-file-coding-system + buffer-display-time indent-tabs-mode tab-width indicate-buffer-boundaries @@ -1233,8 +1234,8 @@ Using it may cause conflicts. Use it anyway? " owner))))) (memq 'desktop-auto-save-set-timer window-configuration-change-hook)) (desktop-auto-save-disable) ;; Evaluate desktop buffer and remember when it was modified. - (load (desktop-full-file-name) t t t) (setq desktop-file-modtime (nth 5 (file-attributes (desktop-full-file-name)))) + (load (desktop-full-file-name) t t t) ;; If it wasn't already, mark it as in-use, to bother other ;; desktop instances. (unless (eq (emacs-pid) owner) @@ -1536,6 +1537,19 @@ and try to load that." ;; An entry of the form `symbol'. (make-local-variable this) (makunbound this))) + ;; adjust `buffer-display-time' for the downtime. e.g., + ;; * if `buffer-display-time' was 8:00 + ;; * and emacs stopped at `desktop-file-modtime' == 11:00 + ;; * and we are loading the desktop file at (current-time) 12:30, + ;; -> then we restore `buffer-display-time' as 9:30, + ;; for the sake of `clean-buffer-list': preserving the invariant + ;; "how much time the user spent in Emacs without looking at this buffer". + (setq buffer-display-time + (if buffer-display-time + (time-add buffer-display-time + (time-subtract (current-time) + desktop-file-modtime)) + (current-time))) (unless (< desktop-file-version 208) ; Don't misinterpret any old custom args (dolist (record compacted-vars) (let* |