From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Boruch Baum Newsgroups: gmane.emacs.bugs Subject: bug#48328: switch-buffer-other-window keep-focus [POC INCLUDED] Date: Mon, 10 May 2021 01:37:17 -0400 Message-ID: <20210510053717.etp7pnybw6wjh2nj@E15-2016.optimum.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29686"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: NeoMutt/20180716 To: 48328@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon May 10 07:38:11 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lfycM-0007bg-Su for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 10 May 2021 07:38:10 +0200 Original-Received: from localhost ([::1]:47334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lfycL-0000w4-PT for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 10 May 2021 01:38:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50774) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lfycE-0000vv-VD for bug-gnu-emacs@gnu.org; Mon, 10 May 2021 01:38:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:45598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lfycE-0000YL-Nl for bug-gnu-emacs@gnu.org; Mon, 10 May 2021 01:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lfycE-00016J-Lj for bug-gnu-emacs@gnu.org; Mon, 10 May 2021 01:38:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Boruch Baum Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 May 2021 05:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48328 X-GNU-PR-Package: emacs X-Debbugs-Original-To: Emacs Bug Reporting Original-Received: via spool by submit@debbugs.gnu.org id=B.16206250484189 (code B ref -1); Mon, 10 May 2021 05:38:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 May 2021 05:37:28 +0000 Original-Received: from localhost ([127.0.0.1]:57144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lfybg-00015U-AR for submit@debbugs.gnu.org; Mon, 10 May 2021 01:37:28 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:48934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lfybb-00015K-VZ for submit@debbugs.gnu.org; Mon, 10 May 2021 01:37:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50700) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lfybb-0000tY-OM for bug-gnu-emacs@gnu.org; Mon, 10 May 2021 01:37:23 -0400 Original-Received: from mout.gmx.net ([212.227.15.15]:56239) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lfybZ-00009q-RJ for bug-gnu-emacs@gnu.org; Mon, 10 May 2021 01:37:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1620625039; bh=E/apNEQvVybcEOLXpjMrp0Svu9q8EW/7SwygYMDNyr0=; h=X-UI-Sender-Class:Date:From:To:Subject; b=N9imwBwThrzTO6WDmGdL46Zayf+JzAjPoKeVaOL3ZY8GIPgjcroElk3IKzCvW1Tz5 5GCtNXrWVtD82I78ifR92LI2Q5YQF8NIDrc9IpnWYIw49nWyaR+kUL/ZMesz1Q/fCr xeTAp2NYD1NGGgRqSNH/n/+k8gOl8NNDPYzRe9ss= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from E15-2016.optimum.net ([96.224.230.212]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MgesQ-1l1A8p112a-00hANF for ; Mon, 10 May 2021 07:37:19 +0200 Content-Disposition: inline X-Provags-ID: V03:K1:qRzdZ1R4FzZOnTXxkAhXh3KP9Gek3BHJxSGYpJ+pPlIs62OZLkd +dshpxAEANb3igdU+XT7nVnKLGleq/F7bThJaf+xnKs4trMmB96+DQyUUSNZgAH6/3kU8r5 1KDhjSFQo+uzG9K7nAYAIaU7RKY4cX8rpHkhP8/hreBHNgOJdjgQ7TX5JLR62duCp6X39n9 yrzaPZw7Rnk6/tG28gRuw== X-UI-Out-Filterresults: notjunk:1;V03:K0:ifkVjmRC1XA=:XoxA7oSiYT6pfQtpXwXHyW ZKjzuFnqanLv4oWTONFmMVxoH4/E4czfjzHGLYAGN8Q/pFxLG7qNMs8jVxOiTq4SeSvmgJUFd /iFPdP2VDhuONkKsLRyIRTvxOYcRmFZirFLky4rKniy82wosBJWrhUxWXCGxWbtP6VzGluuix 7XDtSF4YTVepvcllWJ70Qhp9cmWFlPmiUDYaYbbpPMZsmWvnmx8/KS9TIKyijUH75jJcCRaiA sfO2Tw4mtlULczBE0g6hZ25/UV2UMePJpxrpyUQUSNdKXhMfJf6GvEWlpSq/inHDkEaGD90zd J53T7XADAnGIvm1UxKWJqszVaJX04G5+SgvUUSg83XexclWsIx9YtL98agYaXZztwBi08MA4d Llt9GBympzu9MBdKcR+Ba7QLTC5afuAWou+g9dDoe40noMdhKX3oxvcjWH1Zy/zoWK5AUkQDd d8JfTCIdW2dDeMKmYcr7cTQHBIEERewEaB2enwxL/A2T75c9s9dUdDqDEGIdISz6wJw5HpIqk EYFP6iKaUUYkABB/Xi5q02ndKJDtAgJ+5JqK/9XJqiQPJzLj2oSiLHS7YP5QAFZYTK3sSM5nH qy90iAheLN4m6ZvfX8cAH1rx5WNf36iTqKWQ7MNqOMEcFdgNxju+B1jRcZlRYwMKIUybkGd6K b/YRcZFt0R1pwVkoOzLezObMHYFeQUiVA+OCQkn56H0yE9jyII9Ymt7gNZHWbIvDbc9m5Ezlw 6b0gezGosbIBhVgNH29pdg4PPAgVD49eyamwcWAgQDXGMGeEDuA11uIJbRomASc/o+r23/Xj Received-SPF: pass client-ip=212.227.15.15; envelope-from=boruch_baum@gmx.com; helo=mout.gmx.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:206124 Archived-At: I was going through my init file, and realized that something I thought was part of emacs-core was actually my simple wrapper function. IMO, it's sensible and I find it very convenient when dealing with buried buffers being used for reference (eg. occur, grep, help). All it does is add a prefix-arg control to function `switch-to-buffer-other-window' (C-x 4 b). For your consideration: (defcustom my-switch-to-buffer-other-window-keep-focus nil "Controls focus of buffer-switch to other window. When non-NIL, function `my-switch-to-buffer-other-window' keeps focus in the current window. This can be over-ridden at run-time by passing that function a PREFIX-ARG." :type 'boolean) (defun my-switch-to-buffer-other-window (buffer-or-name &optional norecord= ) "Wrapper to allow keeping focus in current window. Performs action of function `switch-to-buffer-other-window', but refers to variable `my-switch-to-buffer-other-window-keep-focus' to determine whether to change focus to the other window. You can over-ride that setting by calling this function with a PREFIX-ARG." (interactive (list (read-buffer-to-switch "Switch to buffer in other window: "))) (let ((pop-up-windows t) (win (selected-window))) (pop-to-buffer buffer-or-name t norecord) (when (if current-prefix-arg (not my-switch-to-buffer-other-window-keep-focus) my-switch-to-buffer-other-window-keep-focus) (select-window win 'norecord)))) ; ie. norecord=3Dt (define-key ctl-x-4-map (kbd "b") 'my-switch-to-buffer-other-window) =2D- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0