GNU bug report logs - #11810
24.1.50; `vc-diff' shrinks pre-existing window

Previous Next

Package: emacs;

Reported by: Dmitry Gutov <dgutov <at> yandex.ru>

Date: Thu, 28 Jun 2012 19:28:02 UTC

Severity: normal

Found in version 24.1.50

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 11810 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: martin rudalics <rudalics <at> gmx.at>
Cc: Andreas Schwab <schwab <at> linux-m68k.org>, 11810 <at> debbugs.gnu.org
Subject: Re: bug#11810: 24.1.50; `vc-diff' shrinks pre-existing window
Date: Sat, 30 Jun 2012 02:39:33 +0400
Hi Martin,

On 29.06.2012 11:12, martin rudalics wrote:
>  > Commands messing up existing window configuration is one of my top
>  > Emacs annoyances, and AFAIK it confuses the new users, too.
>  > Maybe nil check for (window-prev-buffers) should be instead included in
>  > `shrink-window-if-larger-than-buffer', with a way to override it?
>
> This problem has been previously discussed here
>
> http://lists.gnu.org/archive/html/emacs-devel/2010-08/msg00638.html
>
> If people want an option here, please decide on
>
> - the values it should take, and
>
> - how to meld it with `temp-buffer-resize-mode'.

I think renaming and reusing `even-window-heights' is a good thing to 
do. I'd even suggest changing the default value, because, as you can 
see, virtually nobody among users knows about this variable:

http://stackoverflow.com/questions/4716855/how-can-i-prevent-emacs-resizing-my-windows

(Usually folks at SO give fairly comprehensive answers).
And personally, I'd have been very happy to know about it about 1-2 
years ago, before `pop-to-window' behavior strongly conditioned me 
against manually resizing windows.

I don't think I've ever used `temp-buffer-resize-mode', but if it's a 
minor mode that a user has to enable explicitly, it should be fine if it 
overrides the value of `resize-windows-for-display'.
Please note that `temp-buffer-resize-mode' already does the sane thing: 
it only resizes the window if the window is new and not reused.

To answer you question in the last message:

>> !       (let ((resize-windows-for-display nil))
>> !  (pop-to-buffer (current-buffer)))
>
> Here you explicitly override the user option - is that intentional?

It's intentional, because `vc-diff-internal' calls `pop-to-buffer' 
before the diff command returns its full output, so the window height 
adjustment happens in `vc-diff-finish' which runs after the process 
returns. So you might want to account for this usage.

Regarding "two similar approaches", I think just having an off by 
default `even-window-heights` variable and `temp-buffer-resize-mode' may 
satisfy more or less everyone, except there'd at least need to be a way 
to make shrinking asynchronous, as per above.

-- Dmitry




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

Previous Next


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