[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#1806: dired-pop-to-buffer in wrong place
From: |
martin rudalics |
Subject: |
bug#1806: dired-pop-to-buffer in wrong place |
Date: |
Wed, 26 Sep 2012 10:48:51 +0200 |
> Like Dired and Proced, VC shrinks the window to fit the buffer in
> `log-edit-show-files', so it could use `with-temp-buffer-window' too
> if it will retain the original behavior in the affected commands.
Maybe. But when a buffer already exists, `with-temp-buffer-window' is
not suitable since it erases its contents.
> There is no need to combine specifiers and no need to add
> `temp-buffer-resize-regexps'. In your current implementation
> it's perfectly possible to use the following call in `dired-mark-pop-up':
>
> (with-temp-buffer-window
> buffer
> (cons 'display-buffer-below-selected
> '((fit-window-to-buffer . t)))
> ...
>
> and to add the following code to `display-buffer-below-selected'
> (copied and adapted from `dired-pop-to-buffer'):
>
> (defun display-buffer-below-selected (buffer alist)
> "Try displaying BUFFER in a window below the selected window.
> This either splits the selected window or reuses the window below
> the selected one."
> (let (window)
> (or (and (not (frame-parameter nil 'unsplittable))
> (setq window (window--try-to-split-window (selected-window)))
> (window--display-buffer
> buffer window 'window display-buffer-mark-dedicated))
> (and (setq window (window-in-direction 'below))
> (not (window-dedicated-p window))
> (window--display-buffer
> buffer window 'reuse display-buffer-mark-dedicated)))
> ;; See Bug#12281.
> (set-window-start window (point-min))
> ;; If fit-window-to-buffer is t, make its window fit its contents.
> (when (cdr (assq 'fit-window-to-buffer alist))
> ;; Try to not delete window when we want to display less than
> ;; `window-min-height' lines.
> (fit-window-to-buffer window nil 1))
> window))
How would we handle the case where `window--try-to-split-window' fails
for the selected window and some other window (like the frame's bottom
window) gets split?
>> Too many people don't like to automatically fit windows to
>> their buffers. They must be able to turn that off.
>
> With the fixes above, users will be able to turn that off by customizing
> `display-buffer-alist' to the following value (this should be done via the
> Customization UI, but `setq' is used below for testing purposes):
>
> (setq display-buffer-alist '(("Marked Files" .
> (display-buffer-below-selected
> (fit-window-to-buffer . nil)))))
And how would they handle the frame bottom window case sketched above?
martin
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/22
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/22
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/23
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/24
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/24
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/25
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/25
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/26
- bug#1806: dired-pop-to-buffer in wrong place,
martin rudalics <=
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/26
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/26
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/27
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/27
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/27
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/28
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/28
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/28
- bug#1806: dired-pop-to-buffer in wrong place, Juri Linkov, 2012/09/28
- bug#1806: dired-pop-to-buffer in wrong place, martin rudalics, 2012/09/30