GNU bug report logs - #12921
24.2.50; resizing backtrace buffer not persistent (again)

Previous Next

Package: emacs;

Reported by: michael_heerdegen <at> web.de

Date: Sun, 18 Nov 2012 03:16:02 UTC

Severity: minor

Found in version 24.2.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: martin rudalics <rudalics <at> gmx.at>
To: michael_heerdegen <at> web.de
Cc: 12921 <at> debbugs.gnu.org
Subject: Re: bug#12921: 24.2.50; resizing backtrace buffer not persistent
	(again)
Date: Sun, 18 Nov 2012 12:36:52 +0100
> 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.

You mean a patch like the below?  Note that I have no idea how the
debugger should behave when the window layout is changed by the debugged
code.

martin


*** lisp/emacs-lisp/debug.el	2012-11-11 01:16:25 +0000
--- lisp/emacs-lisp/debug.el	2012-11-18 09:55:27 +0000
***************
*** 228,247 ****
  	       debugger-buffer
  	       `((display-buffer-reuse-window
  		  display-buffer-in-previous-window)
! 		  . (,(when debugger-previous-window
! 			`(previous-window . ,debugger-previous-window)))))
  	      (setq debugger-window (selected-window))
! 	      (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))
  	      (debugger-mode)
  	      (debugger-setup-buffer debugger-args)
  	      (when noninteractive
--- 228,246 ----
  	       debugger-buffer
  	       `((display-buffer-reuse-window
  		  display-buffer-in-previous-window)
! 		 . (,(when debugger-previous-window
! 		       `(previous-window . ,debugger-previous-window)))))
  	      (setq debugger-window (selected-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)
  	      (debugger-mode)
  	      (debugger-setup-buffer debugger-args)
  	      (when noninteractive





This bug report was last modified 3 years and 257 days ago.

Previous Next


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