* wl-vars.el (wl-summary-default-view-alist): Fix docstring
[elisp/wanderlust.git] / wl / wl-addrmgr.el
index f115523..9bc6ee8 100644 (file)
@@ -362,13 +362,16 @@ Return nil if no ADDRESS exists."
       (forward-char 4)))))
 
 (defun wl-addrmgr-quit-yes ()
-  (if (and wl-addrmgr-draft-buffer
-          (buffer-live-p wl-addrmgr-draft-buffer)
-          (null (get-buffer-window wl-addrmgr-draft-buffer)))
-      (switch-to-buffer wl-addrmgr-draft-buffer)
-    (unless (one-window-p)
-      (delete-window)))
-  (kill-buffer wl-addrmgr-buffer-name))
+  (let ((draft-buffer wl-addrmgr-draft-buffer))
+    (if (and draft-buffer
+            (buffer-live-p draft-buffer)
+            (null (get-buffer-window draft-buffer 'visible)))
+       (switch-to-buffer draft-buffer)
+      (unless (one-window-p)
+       (delete-window)))
+    (kill-buffer wl-addrmgr-buffer-name)
+    (if (and draft-buffer (not (one-window-p)))
+       (switch-to-buffer-other-window draft-buffer))))
 
 (defun wl-addrmgr-quit ()
   "Exit from electric reference mode without inserting reference."
@@ -619,8 +622,8 @@ Return nil if no ADDRESS exists."
     (when (or (null wl-addrmgr-draft-buffer)
              (not (buffer-live-p wl-addrmgr-draft-buffer)))
       (setq wl-addrmgr-draft-buffer (save-window-excursion
-                                  (wl-draft)
-                                  (current-buffer))))
+                                     (call-interactively 'wl-draft)
+                                     (current-buffer))))
     (with-current-buffer wl-addrmgr-draft-buffer
       (setq from (std11-field-body "From"))
       (if from