GNU bug report logs - #35592
Use display-buffer-in-direction for completion-like windows

Previous Next

Package: emacs;

Reported by: Juri Linkov <juri <at> linkov.net>

Date: Sun, 5 May 2019 20:43:01 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Juri Linkov <juri <at> linkov.net>
To: 35592 <at> debbugs.gnu.org
Subject: bug#35592: Use display-buffer-in-direction for completion-like windows
Date: Sun, 05 May 2019 23:40:10 +0300
Proced has dired-like UI.  Dired smoothly displays a completion-like
confirmation window with filenames.  ‘proced-with-processes-buffer’
even has a comment proudly declaring its compatibility with dired:

         ;; Analogous to `dired-pop-to-buffer'
         ;; Don't split window horizontally.  (Bug#1806)

But in fact currently Proced can't handle more than 1 window on the same frame.

For example, compare these cases:

When there is only 1 window:

0. emacs -Q
1. M-x proced
2. C-x 1
3. d d x

then a list of *Marked Processes* is displayed in the bottom window
nicely like in Dired.

But when windows are split vertically:

0. emacs -Q
1. M-x proced
2. d d x

then a list of *Marked Processes* is displayed in the top window.

When windows are split horizontally:

0. emacs -Q
1. C-x 3
2. M-x proced
3. d d x

then the buffer *Marked Processes* is displayed in the left window.

Splitting to more windows cause it to display this buffer in random places.

This could be fixed by using something like:

(display-buffer "*Marked Processes*"
  '((display-buffer-in-direction)
    (direction . bottom)
    (window . main)
    (window-height . fit-window-to-buffer)))

The same would be useful also for Widget using e.g.

diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index b9f98cdc4c..b077299c0e 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -252,7 +252,11 @@ widget-choose
 	   (define-key map [?\M--] 'negative-argument)
 	   (save-window-excursion
 	     (let ((buf (get-buffer " widget-choose")))
-	       (fit-window-to-buffer (display-buffer buf))
+	       (display-buffer
+		buf
+		'(display-buffer-in-direction
+		  (direction main bottom)
+		  (window-height . fit-window-to-buffer)))
 	       (let ((cursor-in-echo-area t)
 		     (arg 1))
                  (while (not value)






This bug report was last modified 6 years and 12 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.