emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r113559: lisp/desktop.el (desktop--select-frame): Tr


From: Juanma Barranquero
Subject: [Emacs-diffs] trunk r113559: lisp/desktop.el (desktop--select-frame): Try harder to reuse the initial frame.
Date: Fri, 26 Jul 2013 17:50:11 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113559
revision-id: address@hidden
parent: address@hidden
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Fri 2013-07-26 19:49:52 +0200
message:
  lisp/desktop.el (desktop--select-frame): Try harder to reuse the initial 
frame.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/desktop.el                desktop.el-20091113204419-o5vbwnq5f7feedwu-591
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-07-26 15:09:04 +0000
+++ b/lisp/ChangeLog    2013-07-26 17:49:52 +0000
@@ -1,3 +1,8 @@
+2013-07-26  Juanma Barranquero  <address@hidden>
+
+       * desktop.el (desktop--select-frame):
+       Try harder to reuse the initial frame.
+
 2013-07-26  Stefan Monnier  <address@hidden>
 
        * emacs-lisp/edebug.el: Use backtrace-eval to handle lexical variables.

=== modified file 'lisp/desktop.el'
--- a/lisp/desktop.el   2013-07-26 14:01:19 +0000
+++ b/lisp/desktop.el   2013-07-26 17:49:52 +0000
@@ -1235,10 +1235,20 @@
               ;; If the frame has its own minibuffer, let's see whether
               ;; that frame has already been loaded (which can happen after
               ;; M-x desktop-read).
-              (setq frame (or (desktop--find-frame
-                               (lambda (f m)
-                                 (equal (frame-parameter f 'desktop--mini) m))
-                               display mini))))
+              (setq frame (desktop--find-frame
+                           (lambda (f m)
+                             (equal (frame-parameter f 'desktop--mini) m))
+                           display mini))
+              ;; If it has not been loaded, and it is not a minibuffer-only 
frame,
+              ;; let's look for an existing non-minibuffer-only frame to reuse.
+              (unless (or frame (eq (cdr (assq 'minibuffer frame-cfg)) 'only))
+                (setq frame (desktop--find-frame
+                             (lambda (f)
+                               (let ((w (frame-parameter f 'minibuffer)))
+                                 (and (window-live-p w)
+                                      (window-minibuffer-p w)
+                                      (eq (window-frame w) f))))
+                             display))))
              (mini
               ;; For minibufferless frames, check whether they already exist,
               ;; and that they are linked to the right minibuffer frame.


reply via email to

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