From b7eb715a134f2c98b9a358cebcc2c47832d212ae Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 20 Apr 2026 10:33:55 +0200 Subject: [PATCH] Fix control window setup in 'ediff-setup-windows-plain-compare' (Bug#80809) * lisp/vc/ediff-wind.el (ediff-setup-windows-plain-compare): Do not call 'display-buffer-in-direction' directly (Bug#80809). --- lisp/vc/ediff-wind.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index 2174c5f4e29..c7a9b1b349d 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el @@ -453,9 +453,15 @@ BODY, instead returning nil." (set-window-start wind-A wind-A-start) (set-window-start wind-B wind-B-start)) - (select-window (display-buffer-in-direction - control-buffer - '((direction . bottom)))) + ;; Do not call 'display-buffer-in-direction' directly (Bug#80809). + ;; If making a new window fails, reuse an existing one. + (pop-to-buffer + control-buffer + '(display-buffer-in-direction + ;; Don't let 'display-buffer' put the control buffer into a new + ;; frame - ‘ediff-cleanup-mess’ can't handle it (if you insist, + ;; run 'quit-restore-window' instead of 'delete-window' there). + . ((direction . bottom) (pop-up-frames . nil)))) (ediff-setup-control-buffer control-buffer))) ;; dispatch an appropriate window setup function