aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuanma Barranquero2013-08-04 04:57:45 +0200
committerJuanma Barranquero2013-08-04 04:57:45 +0200
commita04d36a0689a9c246aef0f816f78b7af4bc648fe (patch)
treedf145cd22fa7d7631500a8561efe595423354814
parent2ad0a067728ccc7f8b32b0c3db1677ca351943fe (diff)
downloademacs-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/ChangeLog3
-rw-r--r--lisp/frameset.el28
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.
269Internal use only." 269Internal 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)))