Subject: bug#12921: 24.2.50; resizing backtrace buffer not persistent (again)

From: Michael Heerdegen <[email-masked]>
Date: Sun, 18 Nov 2012 04:14:46 +0100

Hi,

some time ago, Martin Rudalics had written a patch so that when the
window displaying *Backtrace* is resized, the effect was persistent.
This works in general, but not in every case:

In emacs -Q, type M-x debug.  The frame gets split vertically.  The
window below displays *Backtrace*.  But dragging the mode-line in the
middle doesn't resize the window persistently when you step in the
debugger.

Resizing is performed here in these lines of `debug':

      (if (eq debugger-previous-window debugger-window)
	  (when debugger-jumping-flag
	    ;; Try to restore previous height of debugger
	    ;; window.
	    (condition-case nil
		(window-resize
		 debugger-window
		 (- debugger-previous-window-height
		    (window-total-size debugger-window)))
	      (error nil)))
	(setq debugger-previous-window debugger-window))

However, in the above case, (eq debugger-previous-window
debugger-window) is never true, probably because the vertical splitting
into two windows is performed and undone on each step.

Would it be harmful to perform resizing unconditionally?  This fixes
the problem for me, but I'm not sure if it could be harmful in certain
situations.  OTOH, if the window was created newly when the debugger had
been reentered, we already changed the window layout, so forcing a
certain size should not be dangerous, in general.

Regards,

Michael.

In GNU Emacs 24.2.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
 of 2012-11-17 on drachen
Bzr revision: [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
System Description:	Debian GNU/Linux testing (wheezy)