From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Stop frames stealing eachothers' minibuffers! Date: Fri, 27 Nov 2020 10:06:54 +0000 Message-ID: References: <20201123133613.GA4635@ACM> <69ba00e6-b182-77e1-911b-d70f9fffa762@gmx.at> <20201123160703.GB4635@ACM> <53833023-d959-07af-7611-aa2e0bdcc1bc@gmx.at> <0d14bfc4-8e8e-d3b9-e0e1-ee4bf2e6449d@gmx.at> <20201125210947.GB8228@ACM> Reply-To: Gregory Heytings Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19522"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Alpine 2.22 (NEB 394 2020-01-19) Cc: Andrii Kolomoiets , emacs-devel@gnu.org, enometh@meer.net, Stefan Monnier , Alan Mackenzie , Eli Zaretskii To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Nov 27 11:08:42 2020 Return-path: Envelope-to: ged-emacs-devel@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 1kiagD-0004yJ-Bt for ged-emacs-devel@m.gmane-mx.org; Fri, 27 Nov 2020 11:08:41 +0100 Original-Received: from localhost ([::1]:44274 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiagC-0005pD-As for ged-emacs-devel@m.gmane-mx.org; Fri, 27 Nov 2020 05:08:40 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51424) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiaeq-0004hU-NF for emacs-devel@gnu.org; Fri, 27 Nov 2020 05:07:16 -0500 Original-Received: from mx.sdf.org ([205.166.94.24]:61673) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiaem-0002nw-LL; Fri, 27 Nov 2020 05:07:16 -0500 Original-Received: from sdf.org (IDENT:ghe@faeroes.freeshell.org [205.166.94.9]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 0ARA6u2B024121 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Fri, 27 Nov 2020 10:06:56 GMT Original-Received: (from ghe@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 0ARA6uXL020806; Fri, 27 Nov 2020 10:06:56 GMT In-Reply-To: Received-SPF: pass client-ip=205.166.94.24; envelope-from=ghe@sdf.org; helo=mx.sdf.org 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:259861 Archived-At: >> Note that this patch and discussion started with the following >> observation (on Oct 13): >> >>> (i) Have two frames open displaying buffers. >>> (ii) On frame F1 do C-x b. This leaves a minibuffer open there. >>> (iii) Move to F2. >>> (iv) Do C-x 8 RET . >>> F1's minibuffer is now on F2. This is bad. > > But I see the same with Emacs 27. After moving to F2, the minibuffer of > F1 appears there. > Are you sure? You see the minibuffer moving from frame F1 to frame F2, without doing anything? With Emacs 27? I have Emacs 27.1, and do not see this, neither with graphical nor with terminal Emacs. >> It is indeed not possible to replicate the behavior of Emacs 27 and >> earlier. What we have is, for example: >> >> | Emacs 21-27 | Emacs 28 with (setq m-f-s-f t) | Emacs 28 with (setq m-f-s-f nil) >> A | MB1 on F1 | MB1 on F2 | MB1 on F1 >> B | MB1+2 on F2 | MB1+2 on F2 | MB1 on F1, MB2 on F2 [1] >> >> A: type C-x C-f on frame F1, switch to frame F2 >> B: type C-x C-f on frame F1, switch to frame F2, type M-: > > Right. Needs 'enable-recursive-minibuffers' non-nil to replicate. > Or using a command which temporarily sets enable-recursive-minibuffers, like C-x 8 RET or C-h f or C-h w or... But without enable-recursive-minibuffers this patch and discussion would not take place, you simply get a "Command attempted to use minibuffer while in minibuffer". In any case, it is not possible to replicate the behavior of Emacs 21-27, which is IMO not a good thing, especially for something as central to Emacs as the minibuffer. >> [1] There is also a severe regression in this case. Type C-x C-f on >> frame F1, switch to frame F2, type M-:. "Find file" is still visible >> in the miniwindow on frame F1; switch to frame F1. >> >> Experiment 1: Type the name of a file and RET. You'll get the error >> message "End of file during parsing", and MB2 on frame F2 will be left. >> MB1 is now unuseable, and impossible to leave, it will stay on F1 >> whatever you do. > > 'keyboard-escape-quit' gets me out. While this should be the last > resort only, it happened to me occasionally before Alan's changes. Yet, > your scenario must be fixed. > Indeed, 'abort-recursive-edit' also works. But as you write these commands should be used in last resort, especially as they are not known to newcomers. >> Experiment 2: Type C-g. MB2 on frame F2 will be left, and "Find file" >> will stay in MB1 on frame F1. However you cannot use it anymore, the >> keymap of MB1 is now minibuffer-inactive-mode-map. And like in >> experiment 1, you cannot leave it. > > Bad indeed. Must be fixed too. > IMO "fixing" in this case should be going back to the earlier state (the Emacs 21-27 behavior), and first trying to _precisely_ define the desired new behavior.