diff options
| author | Gerd Moellmann | 2001-10-23 13:52:45 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-10-23 13:52:45 +0000 |
| commit | 1d500ca6e8b6329f50934c51c3db9b8fd359d41a (patch) | |
| tree | fc4ff9031663c544362253511721ccb04fd86297 | |
| parent | f0487f056a0ea8b8db3c77855b10d28f2310b073 (diff) | |
| download | emacs-1d500ca6e8b6329f50934c51c3db9b8fd359d41a.tar.gz emacs-1d500ca6e8b6329f50934c51c3db9b8fd359d41a.zip | |
(desktop-last-buffer): New variable.
(desktop-create-buffer): Set it.
(desktop-read): Bind it and switch to that buffer.
| -rw-r--r-- | lisp/desktop.el | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lisp/desktop.el b/lisp/desktop.el index 4ccdaed7a94..dd1d0b68209 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -576,9 +576,17 @@ This is a no-op when Emacs is running in batch mode." | |||
| 576 | (setq dirs (cdr dirs))) | 576 | (setq dirs (cdr dirs))) |
| 577 | (setq desktop-dirname (and dirs (expand-file-name (car dirs)))) | 577 | (setq desktop-dirname (and dirs (expand-file-name (car dirs)))) |
| 578 | (if desktop-dirname | 578 | (if desktop-dirname |
| 579 | (progn | 579 | (let ((desktop-last-buffer nil)) |
| 580 | ;; `load-with-code-conversion' calls `eval-buffer' which | ||
| 581 | ;; contains a `save-excursion', so we end up with the same | ||
| 582 | ;; buffer before and after the load. This is a problem | ||
| 583 | ;; when the desktop is read initially when Emacs starts up | ||
| 584 | ;; because, if we still are in *scratch* after running | ||
| 585 | ;; `after-init-hook', the splash screen will be displayed. | ||
| 580 | (load (expand-file-name desktop-basefilename desktop-dirname) | 586 | (load (expand-file-name desktop-basefilename desktop-dirname) |
| 581 | t t t) | 587 | t t t) |
| 588 | (when desktop-last-buffer | ||
| 589 | (switch-to-buffer desktop-last-buffer)) | ||
| 582 | (run-hooks 'desktop-delay-hook) | 590 | (run-hooks 'desktop-delay-hook) |
| 583 | (setq desktop-delay-hook nil) | 591 | (setq desktop-delay-hook nil) |
| 584 | (message "Desktop loaded.")) | 592 | (message "Desktop loaded.")) |
| @@ -666,6 +674,10 @@ to provide correct modes for autoloaded files." | |||
| 666 | ;; ---------------------------------------------------------------------------- | 674 | ;; ---------------------------------------------------------------------------- |
| 667 | ;; Create a buffer, load its file, set is mode, ...; called from Desktop file | 675 | ;; Create a buffer, load its file, set is mode, ...; called from Desktop file |
| 668 | ;; only. | 676 | ;; only. |
| 677 | |||
| 678 | (defvar desktop-last-buffer nil | ||
| 679 | "Last buffer read. Dynamically bound in `desktop-read'.") | ||
| 680 | |||
| 669 | (defun desktop-create-buffer (ver desktop-buffer-file-name desktop-buffer-name | 681 | (defun desktop-create-buffer (ver desktop-buffer-file-name desktop-buffer-name |
| 670 | desktop-buffer-major-mode | 682 | desktop-buffer-major-mode |
| 671 | mim pt mk ro desktop-buffer-misc | 683 | mim pt mk ro desktop-buffer-misc |
| @@ -678,6 +690,7 @@ to provide correct modes for autoloaded files." | |||
| 678 | (setq result (funcall handler)) | 690 | (setq result (funcall handler)) |
| 679 | (setq hlist (cdr hlist))) | 691 | (setq hlist (cdr hlist))) |
| 680 | (when (bufferp result) | 692 | (when (bufferp result) |
| 693 | (setq desktop-last-buffer result) | ||
| 681 | (set-buffer result) | 694 | (set-buffer result) |
| 682 | (if (not (equal (buffer-name) desktop-buffer-name)) | 695 | (if (not (equal (buffer-name) desktop-buffer-name)) |
| 683 | (rename-buffer desktop-buffer-name)) | 696 | (rename-buffer desktop-buffer-name)) |