# HG changeset patch # User Karl Heuer # Date 801728870 0 # Node ID 8b4f8ba23b6003632f13ca4b737c34d907f76c28 # Parent 4b293ac1eef656fc69df2250d817d7266fe54486 (ediff-setup-control-frame): Use designated-minibuffer-frame while making the new frame. And delete the old frame if its minibuffer is not in that frame. (ediff-setup-windows-multiframe-compare) (ediff-setup-windows-multiframe-merge): Don't mess with default-minibuffer-frame here and don't kill the old control frame. diff -r 4b293ac1eef6 -r 8b4f8ba23b60 lisp/ediff-wind.el --- a/lisp/ediff-wind.el Mon May 29 06:27:18 1995 +0000 +++ b/lisp/ediff-wind.el Mon May 29 06:27:50 1995 +0000 @@ -548,17 +548,8 @@ (setq frame-A (ediff-window-frame ediff-window-A) designated-minibuffer-frame (ediff-window-frame - (minibuffer-window frame-A))) - (if ediff-xemacs-p - () - (if (not (eq designated-minibuffer-frame default-minibuffer-frame)) - (progn - (setq default-minibuffer-frame designated-minibuffer-frame) - (if (ediff-frame-live-p ediff-control-frame) - (ediff-delete-frame ediff-control-frame))) - )) - ) - + (minibuffer-window frame-A)))) + (ediff-setup-control-frame control-buf) )) @@ -732,16 +723,7 @@ (setq frame-A (ediff-window-frame ediff-window-A) designated-minibuffer-frame (ediff-window-frame - (minibuffer-window frame-A))) - (if ediff-xemacs-p - () - (if (not (eq designated-minibuffer-frame default-minibuffer-frame)) - (progn - (setq default-minibuffer-frame designated-minibuffer-frame) - (if (ediff-frame-live-p ediff-control-frame) - (ediff-delete-frame ediff-control-frame))) - )) - ) + (minibuffer-window frame-A)))) ;; It is unlikely that we'll implement ediff-windows that would compare ;; 3 windows at once. So, we don't use buffer C here. @@ -786,15 +768,17 @@ (run-hooks 'ediff-before-setup-control-frame-hooks)) (setq old-ctl-frame (ediff-eval-in-buffer ctl-buffer ediff-control-frame)) - (if (ediff-frame-live-p old-ctl-frame) + (if (and (ediff-frame-live-p old-ctl-frame) + (eq (window-frame (cdr (assq 'minibuffer (frame-parameters old-ctl-frame)))) + designated-minibuffer-frame)) (setq ctl-frame old-ctl-frame) (redraw-display) - ;; frame should be made while ctl-buff is current, so that - ;; the local default-minibuffer-frame will be consulted and - ;; that ediff-control-frame-parameters will have the right value. + ;; Make the frame while ctl-buff is current, so that + ;; ediff-control-frame-parameters will have the right value. (ediff-eval-in-buffer ctl-buffer - (setq ctl-frame (ediff-make-frame - ediff-control-frame-parameters))) + (let ((default-minibuffer-frame designated-minibuffer-frame)) + (setq ctl-frame (ediff-make-frame + ediff-control-frame-parameters)))) (ediff-eval-in-buffer ctl-buffer (setq ediff-control-frame ctl-frame))) (setq ctl-frame-iconified-p (ediff-frame-iconified-p ctl-frame))