From 6fbdecf5e6a1726498287679bc276dfc0af0633f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miha=20Rihtar=C5=A1i=C4=8D?= Date: Sun, 19 Jun 2022 15:29:59 +0200 Subject: [PATCH] xref-goto-xref: Set input focus in addition to selecting window * lisp/progmodes/xref.el (xref--show-location): Set input focus in addition to selecting displayed window (Bug#55983). --- lisp/progmodes/xref.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 683589d71c..0213ab3cc5 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -645,9 +645,15 @@ xref--show-location (xref-buffer (current-buffer))) (cond (select (if (eq select 'quit) (quit-window nil nil)) - (select-window - (with-current-buffer xref-buffer - (xref--show-pos-in-buf marker buf)))) + (let* ((old-frame (selected-frame)) + (window (with-current-buffer xref-buffer + (xref--show-pos-in-buf marker buf))) + (frame (window-frame window))) + ;; If we chose another frame, make sure it gets input + ;; focus. + (unless (eq frame old-frame) + (select-frame-set-input-focus frame)) + (select-window window))) (t (save-selected-window (xref--with-dedicated-window -- 2.36.0