emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r104773: Some more fixes of buffer di


From: martin rudalics
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104773: Some more fixes of buffer display functions.
Date: Tue, 28 Jun 2011 14:28:40 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104773
committer: martin rudalics <address@hidden>
branch nick: trunk
timestamp: Tue 2011-06-28 14:28:40 +0200
message:
  Some more fixes of buffer display functions.
  
  * window.el (display-buffer-in-side-window): Handle dedicated
  windows as in display-buffer-reuse-window.
  (display-buffer-normalize-alist): Use value of override
  specifier.
  (display-buffer-normalize-specifiers): Use value of
  other-window-means-other-frame specifier.
  (display-buffer-alist): Rewrite some texts in widgets.
  (display-buffer): Spread arguments when calling function
  specified by fun-with-args.
modified:
  lisp/ChangeLog
  lisp/window.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-06-28 12:09:43 +0000
+++ b/lisp/ChangeLog    2011-06-28 12:28:40 +0000
@@ -1,3 +1,15 @@
+2011-06-28  Martin Rudalics  <address@hidden>
+
+       * window.el (display-buffer-in-side-window): Handle dedicated
+       windows as in display-buffer-reuse-window.
+       (display-buffer-normalize-alist): Use value of override
+       specifier.
+       (display-buffer-normalize-specifiers): Use value of
+       other-window-means-other-frame specifier.
+       (display-buffer-alist): Rewrite some texts in widgets.
+       (display-buffer): Spread arguments when calling function
+       specified by fun-with-args.
+
 2011-06-28  Deniz Dogan  <address@hidden>
 
        * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table): Unnest

=== modified file 'lisp/window.el'
--- a/lisp/window.el    2011-06-27 18:32:56 +0000
+++ b/lisp/window.el    2011-06-28 12:28:40 +0000
@@ -4092,7 +4092,7 @@
 function specified in the second element of the list is
 responsible for displaying the buffer.  `display-buffer' calls
 this function with the buffer as first argument and the remaining
-elements of the list as second argument.
+elements of the list as the other arguments.
 
 The function should choose or create a window, display the buffer
 in it, and return the window.  It is also responsible for giving
@@ -4226,9 +4226,9 @@
            :help-echo "Window to reuse."
            :value nil
            :format "%[Window%] %v" :size 15
-           (const :tag "Any" :format "%t" nil)
-           (const :tag "Selected only" :format "%t" same)
-           (const :tag "Any but selected" :format "%t" other))
+           (const :tag "Any window" :format "%t" nil)
+           (const :tag "Same window" :format "%t" same)
+           (const :tag "Other window" :format "%t" other))
           ;; The window's buffer.
           (choice
            :tag "Buffer"
@@ -4240,15 +4240,15 @@
            (const :tag "Other buffer" :format "%t" other))
           ;; The window's frame.
           (choice
-           :help-echo "Frame to search for a window to reuse."
+           :help-echo "Frames to search for a window to reuse."
            :tag "Frame"
            :value nil
            :format " %[Frame%] %v" :size 15
-           (const :tag "Selected frame only" :format "%t" nil)
+           (const :tag "Same frame only" :format "%t" nil)
            (const :tag "Visible frames" :format "%t" visible)
-           (const :tag "Visible but unselected" :format "%t" other)
-           (const :tag "Visible and iconified" :format "%t" 0)
-           (const :tag "Any frame" :format "%t" t)))
+           (const :tag "Any other visible frame" :format "%t" other)
+           (const :tag "Visible and iconified frames" :format "%t" 0)
+           (const :tag "All frames" :format "%t" t)))
          ;; Whether window sizes should be evened out.
          (cons
           :format "%v\n"
@@ -4596,9 +4596,9 @@
        (const :format "" other-window-means-other-frame)
        (choice
        :help-echo "Whether other window means same or other frame."
-       :format "%[Same or other frame%] %v\n" :size 15
-       (const :tag "Same frame" :format "%t" nil)
-       (const :tag "Other frame" :format "%t" t)))
+       :format "%[Other window means other frame%] %v\n" :size 15
+       (const :tag "Off" :format "%t" nil)
+       (const :tag "On" :format "%t" t)))
       ;; Overriding.
       (cons
        :format "%v\n"
@@ -5172,6 +5172,7 @@
         ;; `major' is the major window on SIDE, `windows' the life
         ;; windows on SIDE.
         (windows (when major (windows-with-parameter 'window-side side)))
+        (reuse-dedicated (cdr (assq 'reuse-window-dedicated specifiers)))
         (slots (when major (window-child-count major)))
         (max-slots
          (nth (cond
@@ -5182,7 +5183,7 @@
                window-sides-slots))
         (selected-window (selected-window))
         window this-window this-slot prev-window next-window
-        best-window best-slot abs-slot)
+        best-window best-slot abs-slot dedicated)
 
     (unless (numberp slot)
       (setq slot 0))
@@ -5197,8 +5198,13 @@
           ((not (numberp this-slot)))
           ((and (= this-slot slot)
                 ;; Dedicatedness check.
-                (or (not (window-dedicated-p window))
-                    (assq 'reuse-window-dedicated specifiers)))
+                (or (not (setq dedicated (window-dedicated-p window)))
+                    ;; If the window is weakly dedicated to its
+                    ;; buffer, reuse-dedicated must be non-nil.
+                    (and (not (eq dedicated t)) reuse-dedicated)
+                    ;; If the window is strongly dedicated to its
+                    ;; buffer, reuse-dedicated must be t.
+                    (eq reuse-dedicated t)))
            ;; Window with matching SLOT, use it.
            (setq this-window window)
            (throw 'found t))
@@ -5550,7 +5556,7 @@
        (let* ((specifiers (cdr entry))
               (normalized
                (display-buffer-normalize-alist-1 specifiers label)))
-         (if (assq 'override specifiers)
+         (if (cdr (assq 'override specifiers))
              (setq list-1
                    (if list-1
                        (append list-1 normalized)
@@ -5587,8 +5593,8 @@
 
 - `display-buffer-default-specifiers'."
   (let* ((list (display-buffer-normalize-alist buffer-name label))
-        (other-frame (assq 'other-window-means-other-frame
-                           (or (car list) (cdr list)))))
+        (other-frame (cdr (assq 'other-window-means-other-frame
+                                (or (car list) (cdr list))))))
     (append
      ;; Overriding user specifiers.
      (car list)
@@ -5717,7 +5723,7 @@
                (display-buffer-in-side-window
                 buffer (nth 1 specifier) (nth 2 specifier) normalized))
               ((eq method 'fun-with-args)
-               (apply (cadr specifier) buffer (cddr specifier))))))
+               (apply (nth 1 specifier) buffer (nth 2 specifier))))))
 
       ;; If we don't have a window yet, try a fallback method.  All
       ;; specifiers have been used up by now.


reply via email to

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