[slime-devel] Restore window configuration after closing a debug window.

Nicolas Buduroi nbuduroi at gmail.com
Thu Dec 10 05:55:08 UTC 2009


Hi, I've been using slime casually for some time now and something 
always annoyed me, when the debug window pop up, it changes the size of 
the second window if there's one. I've searched for a ways to fix this 
behavior many times, but never found any simple solution. So today I've 
got myself into the code and made some changes. It works but the code is 
not really correct, one problem is that if you dig farther than the 
first cause and then use abort, it will hide the remaining debug buffers 
by restoring windows to their prior state. Can someone help me improve 
that code or show me a better way to achieve this?

Here's the patch:

--- slime.el.orig    2009-03-30 19:01:56.781250000 -0400
+++ slime.el    2009-12-10 00:28:27.984375000 -0500
@@ -1040,6 +1040,8 @@
                (set-window-buffer popup-window old-buffer))))
       (when (window-live-p selected-window)
         (select-window selected-window)))
+    (when sldb-last-window-configuration
+      (set-window-configuration sldb-last-window-configuration))
     (kill-local-variable 'slime-popup-restore-data)))
 
 (defmacro slime-save-local-variables (vars &rest body)
@@ -4069,6 +4071,8 @@
   ;;(when msg (slime-insert-transcript-delimiter msg))
   ;;(setq slime-repl-popup-on-output (not no-popups))
   (setq cont (or cont #'slime-display-eval-result))
+  (when (null sldb-last-window-configuration)
+    (setq sldb-last-window-configuration (current-window-configuration)))
   (slime-rex (cont (buffer (current-buffer))) (form)
     ((:ok value) (slime-eval-with-transcript-cont t value cont buffer))
     ((:abort) (slime-eval-with-transcript-cont nil nil nil buffer))))
@@ -5158,6 +5162,9 @@
   :group 'slime-debugger
   :type 'integer)
 
+(defvar sldb-last-window-configuration nil
+  "Last window configuration before creating a new sldb buffer.")
+
 

 ;;;;; Local variables in the debugger buffer
 
Thanks




More information about the slime-devel mailing list