emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116730: lisp/frameset.el: Let-bind frameset--target


From: Juanma Barranquero
Subject: [Emacs-diffs] trunk r116730: lisp/frameset.el: Let-bind frameset--target-display.
Date: Tue, 11 Mar 2014 01:45:00 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116730
revision-id: address@hidden
parent: address@hidden
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Tue 2014-03-11 02:44:51 +0100
message:
  lisp/frameset.el: Let-bind frameset--target-display.
  
  * frameset.el (frameset--target-display): Remove definition; declare.
  (frameset-save, frameset-restore): Let-bind frameset--target-display.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/frameset.el               frameset.el-20130802043218-tfwraxv1c2zlibpw-1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-03-11 01:22:24 +0000
+++ b/lisp/ChangeLog    2014-03-11 01:44:51 +0000
@@ -1,3 +1,8 @@
+2014-03-11  Juanma Barranquero  <address@hidden>
+
+       * frameset.el (frameset--target-display): Remove definition; declare.
+       (frameset-save, frameset-restore): Let-bind frameset--target-display.
+
 2014-03-11  Stefan Monnier  <address@hidden>
 
        * emacs-lisp/nadvice.el (advice--make-1): Fix autoloading avoidance.

=== modified file 'lisp/frameset.el'
--- a/lisp/frameset.el  2014-03-11 00:46:07 +0000
+++ b/lisp/frameset.el  2014-03-11 01:44:51 +0000
@@ -417,11 +417,11 @@
 ;; `frameset-filter-params' can be useful, even if you're not using
 ;; framesets.  The interface of `frameset-filter-params' is generic
 ;; and does not depend of global state, with one exception: it uses
-;; the internal variable `frameset--target-display' to decide if, and
-;; how, to modify the `display' parameter of FILTERED.  But that
-;; should not represent any problem, because it's only meaningful
-;; when restoring, and customized uses of `frameset-filter-params'
-;; are likely to use their own filter alist and just call
+;; the dynamically bound variable `frameset--target-display' to decide
+;; if, and how, to modify the `display' parameter of FILTERED.  That
+;; should not represent a problem, because it's only meaningful when
+;; restoring, and customized uses of `frameset-filter-params' are
+;; likely to use their own filter alist and just call
 ;;
 ;;   (setq my-filtered (frameset-filter-params my-params my-filters t))
 ;;
@@ -522,13 +522,13 @@
 Frame parameters not on this alist are passed intact, as if they were
 defined with ACTION = nil.")
 
-(defvar frameset--target-display nil
-  ;; Either (minibuffer . VALUE) or nil.
-  ;; This refers to the current frame config being processed inside
-  ;; `frameset-restore' and its auxiliary functions (like filtering).
-  ;; If nil, there is no need to change the display.
-  ;; If non-nil, display parameter to use when creating the frame.
-  "Internal use only.")
+;; Dynamically bound in `frameset-save', `frameset-restore'.
+(defvar frameset--target-display)
+;; Either (display . VALUE) or nil.
+;; This refers to the current frame config being processed with
+;; `frameset-filter-params' and its auxiliary filtering functions.
+;; If nil, there is no need to change the display.
+;; If non-nil, display parameter to use when creating the frame.
 
 (defun frameset-switch-to-gui-p (parameters)
   "True when switching to a graphic display.
@@ -760,6 +760,7 @@
 should be saved; if PREDICATE is nil, all frames from FRAME-LIST are saved.
 PROPERTIES is a user-defined property list to add to the frameset."
   (let* ((list (or (copy-sequence frame-list) (frame-list)))
+        (frameset--target-display nil)
         (frames (cl-delete-if-not #'frame-live-p
                                   (if predicate
                                       (cl-delete-if-not predicate list)
@@ -1141,16 +1142,15 @@
                     (force-display (if (functionp force-display)
                                        (funcall force-display frame-cfg 
window-cfg)
                                      force-display))
+                    (frameset--target-display nil)
                     frame to-tty duplicate)
                ;; Only set target if forcing displays and the target display 
is different.
-               (cond ((frameset-keep-original-display-p force-display)
-                      (setq frameset--target-display nil))
-                     ((eq (frame-parameter nil 'display) (cdr (assq 'display 
frame-cfg)))
-                      (setq frameset--target-display nil))
-                     (t
-                      (setq frameset--target-display (cons 'display
-                                                           (frame-parameter 
nil 'display))
-                            to-tty (null (cdr frameset--target-display)))))
+               (unless (or (frameset-keep-original-display-p force-display)
+                           (eq (frame-parameter nil 'display)
+                               (cdr (assq 'display frame-cfg))))
+                 (setq frameset--target-display (cons 'display
+                                                      (frame-parameter nil 
'display))
+                       to-tty (null (cdr frameset--target-display))))
                ;; Time to restore frames and set up their minibuffers as they 
were.
                ;; We only skip a frame (thus deleting it) if either:
                ;; - we're switching displays, and the user chose the option to 
delete, or
@@ -1210,9 +1210,6 @@
     ;; other frames are already visible (discussed in thread for bug#14841).
     (sit-for 0 t)
 
-    ;; Clean temporary caches
-    (setq frameset--target-display nil)
-
     ;; Clean up the frame list
     (when cleanup-frames
       (let ((map nil)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]