diff options
| author | Juanma Barranquero | 2013-08-04 04:57:45 +0200 |
|---|---|---|
| committer | Juanma Barranquero | 2013-08-04 04:57:45 +0200 |
| commit | a04d36a0689a9c246aef0f816f78b7af4bc648fe (patch) | |
| tree | df145cd22fa7d7631500a8561efe595423354814 | |
| parent | 2ad0a067728ccc7f8b32b0c3db1677ca351943fe (diff) | |
| download | emacs-a04d36a0689a9c246aef0f816f78b7af4bc648fe.tar.gz emacs-a04d36a0689a9c246aef0f816f78b7af4bc648fe.zip | |
lisp/frameset.el (frameset--reuse-frame): Use correct frame-id to find frame.
(frameset--set-id, frameset--process-minibuffer-frames)
(frameset-restore): Rename parameter `frameset-id' to `frame-id'.
| -rw-r--r-- | lisp/ChangeLog | 3 | ||||
| -rw-r--r-- | lisp/frameset.el | 28 |
2 files changed, 17 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 15e0ad745b1..a4453838399 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -3,6 +3,9 @@ | |||
| 3 | * frameset.el (frameset-p, frameset-save): Fix autoload cookies. | 3 | * frameset.el (frameset-p, frameset-save): Fix autoload cookies. |
| 4 | (frameset-filter-minibuffer): Doc fix. | 4 | (frameset-filter-minibuffer): Doc fix. |
| 5 | (frameset-restore): Fix autoload cookie. Fix typo in docstring. | 5 | (frameset-restore): Fix autoload cookie. Fix typo in docstring. |
| 6 | (frameset--set-id, frameset--process-minibuffer-frames) | ||
| 7 | (frameset-restore): Rename parameter `frameset-id' to `frame-id'. | ||
| 8 | (frameset--reuse-frame): Pass correct frame-id to frameset--find-frame. | ||
| 6 | 9 | ||
| 7 | * desktop.el (desktop-clear): Only delete frames when called | 10 | * desktop.el (desktop-clear): Only delete frames when called |
| 8 | interactively and desktop-restore-frames is non-nil. Doc fix. | 11 | interactively and desktop-restore-frames is non-nil. Doc fix. |
diff --git a/lisp/frameset.el b/lisp/frameset.el index 63ee9af23fc..2a6a0d2dfb8 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el | |||
| @@ -265,11 +265,11 @@ nil while the filtering is done to restore it." | |||
| 265 | ;; Saving framesets | 265 | ;; Saving framesets |
| 266 | 266 | ||
| 267 | (defun frameset--set-id (frame) | 267 | (defun frameset--set-id (frame) |
| 268 | "Set FRAME's `frameset-id' if not yet set. | 268 | "Set FRAME's `frame-id' if not yet set. |
| 269 | Internal use only." | 269 | Internal use only." |
| 270 | (unless (frame-parameter frame 'frameset-id) | 270 | (unless (frame-parameter frame 'frame-id) |
| 271 | (set-frame-parameter frame | 271 | (set-frame-parameter frame |
| 272 | 'frameset-id | 272 | 'frame-id |
| 273 | (mapconcat (lambda (n) (format "%04X" n)) | 273 | (mapconcat (lambda (n) (format "%04X" n)) |
| 274 | (cl-loop repeat 4 collect (random 65536)) | 274 | (cl-loop repeat 4 collect (random 65536)) |
| 275 | "-")))) | 275 | "-")))) |
| @@ -292,11 +292,11 @@ FRAME-LIST is a list of frames." | |||
| 292 | (unless (frame-parameter frame 'frameset--mini) | 292 | (unless (frame-parameter frame 'frameset--mini) |
| 293 | (frameset--set-id frame) | 293 | (frameset--set-id frame) |
| 294 | (let* ((mb-frame (window-frame (minibuffer-window frame))) | 294 | (let* ((mb-frame (window-frame (minibuffer-window frame))) |
| 295 | (id (and mb-frame (frame-parameter mb-frame 'frameset-id)))) | 295 | (id (and mb-frame (frame-parameter mb-frame 'frame-id)))) |
| 296 | (if (null id) | 296 | (if (null id) |
| 297 | (error "Minibuffer frame %S for %S is excluded" mb-frame frame) | 297 | (error "Minibuffer frame %S for %S is excluded" mb-frame frame) |
| 298 | ;; For minibufferless frames, frameset--mini is a cons | 298 | ;; For minibufferless frames, frameset--mini is a cons |
| 299 | ;; (nil . FRAME-ID), where FRAME-ID is the frameset-id of | 299 | ;; (nil . FRAME-ID), where FRAME-ID is the frame-id of |
| 300 | ;; the frame containing its minibuffer window. | 300 | ;; the frame containing its minibuffer window. |
| 301 | (set-frame-parameter frame | 301 | (set-frame-parameter frame |
| 302 | 'frameset--mini | 302 | 'frameset--mini |
| @@ -430,8 +430,8 @@ is the parameter list of the frame being restored. Internal use only." | |||
| 430 | ;; M-x desktop-read). | 430 | ;; M-x desktop-read). |
| 431 | (setq frame (frameset--find-frame | 431 | (setq frame (frameset--find-frame |
| 432 | (lambda (f id) | 432 | (lambda (f id) |
| 433 | (string= (frame-parameter f 'frameset-id) id)) | 433 | (string= (frame-parameter f 'frame-id) id)) |
| 434 | display (cdr mini))) | 434 | display (cdr (assq 'frame-id frame-cfg)))) |
| 435 | ;; If it has not been loaded, and it is not a minibuffer-only frame, | 435 | ;; If it has not been loaded, and it is not a minibuffer-only frame, |
| 436 | ;; let's look for an existing non-minibuffer-only frame to reuse. | 436 | ;; let's look for an existing non-minibuffer-only frame to reuse. |
| 437 | (unless (or frame (eq (cdr (assq 'minibuffer frame-cfg)) 'only)) | 437 | (unless (or frame (eq (cdr (assq 'minibuffer frame-cfg)) 'only)) |
| @@ -446,12 +446,12 @@ is the parameter list of the frame being restored. Internal use only." | |||
| 446 | ;; For minibufferless frames, check whether they already exist, | 446 | ;; For minibufferless frames, check whether they already exist, |
| 447 | ;; and that they are linked to the right minibuffer frame. | 447 | ;; and that they are linked to the right minibuffer frame. |
| 448 | (setq frame (frameset--find-frame | 448 | (setq frame (frameset--find-frame |
| 449 | (lambda (f id mini-id) | 449 | (lambda (f id mini-id) |
| 450 | (and (string= (frame-parameter f 'frameset-id) id) | 450 | (and (string= (frame-parameter f 'frame-id) id) |
| 451 | (string= (frame-parameter (window-frame (minibuffer-window f)) | 451 | (string= (frame-parameter (window-frame (minibuffer-window f)) |
| 452 | 'frameset-id) | 452 | 'frame-id) |
| 453 | mini-id))) | 453 | mini-id))) |
| 454 | display (cdr (assq 'frameset-id frame-cfg)) (cdr mini)))) | 454 | display (cdr (assq 'frame-id frame-cfg)) (cdr mini)))) |
| 455 | (t | 455 | (t |
| 456 | ;; Default to just finding a frame in the same display. | 456 | ;; Default to just finding a frame in the same display. |
| 457 | (setq frame (frameset--find-frame nil display)))) | 457 | (setq frame (frameset--find-frame nil display)))) |
| @@ -647,7 +647,7 @@ All keywords default to nil." | |||
| 647 | (t ;; Frame depends on other frame's minibuffer window. | 647 | (t ;; Frame depends on other frame's minibuffer window. |
| 648 | (let* ((mb-frame (or (cl-find-if | 648 | (let* ((mb-frame (or (cl-find-if |
| 649 | (lambda (f) | 649 | (lambda (f) |
| 650 | (string= (frame-parameter f 'frameset-id) | 650 | (string= (frame-parameter f 'frame-id) |
| 651 | mb-id)) | 651 | mb-id)) |
| 652 | (frame-list)) | 652 | (frame-list)) |
| 653 | (error "Minibuffer frame %S not found" mb-id))) | 653 | (error "Minibuffer frame %S not found" mb-id))) |