branch: elpa/aidermacs
commit cd2a4f0af5afc522483cb740b5bca34fd5174eaf
Author: Mingde (Matthew) Zeng <matthew...@posteo.net>
Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>

    Restore buffer arrangement when quitting ediff
    
    Fixes #58
---
 aidermacs.el | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/aidermacs.el b/aidermacs.el
index 42cbcd4e5f..5ab7fae278 100644
--- a/aidermacs.el
+++ b/aidermacs.el
@@ -441,13 +441,20 @@ Returns a list of files that have been modified according 
to the output."
 (defvar-local aidermacs--ediff-queue nil
   "Buffer-local queue of files waiting to be processed by ediff.")
 
+(defvar aidermacs--pre-ediff-window-config nil
+  "Window configuration before starting ediff sessions.")
+
 (defun aidermacs--process-next-ediff-file ()
   "Process the next file in the ediff queue for the current buffer."
   (with-current-buffer (get-buffer (aidermacs-get-buffer-name))
     (if aidermacs--ediff-queue
         (let ((file (pop aidermacs--ediff-queue)))
           (aidermacs--show-ediff-for-file file))
-      (aidermacs--cleanup-temp-buffers))))
+      (aidermacs--cleanup-temp-buffers)
+      ;; Restore original window configuration
+      (when aidermacs--pre-ediff-window-config
+        (set-window-configuration aidermacs--pre-ediff-window-config)
+        (setq aidermacs--pre-ediff-window-config nil)))))
 
 (defun aidermacs--show-ediff-for-file (file)
   "Uses the pre-edit buffer stored to compare with the current FILE state."
@@ -471,6 +478,9 @@ Returns a list of files that have been modified according 
to the output."
   "Show ediff for each file in EDITED-FILES.
 This is skipped if `aidermacs-show-diff-after-change' is nil."
   (when (and aidermacs-show-diff-after-change edited-files)
+    ;; Save current window configuration
+    (setq aidermacs--pre-ediff-window-config (current-window-configuration))
+
     ;; Display a message about which files were changed
     (message "Modified %d file(s): %s"
              (length edited-files)

Reply via email to