From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#48674: Frames and minibuffer bug Date: Sat, 29 May 2021 11:20:58 +0200 Message-ID: <89cc93a4-15b1-2d1c-095e-7a0b5f1683a1@gmx.at> References: <1911d1b0-ed9f-7359-b28c-fbaef27df8f3@gmx.at> <1e21b121-91c1-cbe9-d9ae-24915f163ae5@gmx.at> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33870"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 48674@debbugs.gnu.org, Iris =?UTF-8?Q?Garc=C3=ADa?= To: Alan Mackenzie Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat May 29 11:22:12 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 1lmvAa-0008dP-Ho for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 29 May 2021 11:22:12 +0200 Original-Received: from localhost ([::1]:49272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lmvAY-0000Og-Hb for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 29 May 2021 05:22:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lmvAP-0000Kr-Vo for bug-gnu-emacs@gnu.org; Sat, 29 May 2021 05:22:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44458) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lmvAP-0007y4-Mp for bug-gnu-emacs@gnu.org; Sat, 29 May 2021 05:22:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lmvAP-0001zt-IJ for bug-gnu-emacs@gnu.org; Sat, 29 May 2021 05:22:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 29 May 2021 09:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48674 X-GNU-PR-Package: emacs Original-Received: via spool by 48674-submit@debbugs.gnu.org id=B48674.16222800777626 (code B ref 48674); Sat, 29 May 2021 09:22:01 +0000 Original-Received: (at 48674) by debbugs.gnu.org; 29 May 2021 09:21:17 +0000 Original-Received: from localhost ([127.0.0.1]:56004 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmv9h-0001yv-11 for submit@debbugs.gnu.org; Sat, 29 May 2021 05:21:17 -0400 Original-Received: from mout.gmx.net ([212.227.15.18]:52779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lmv9b-0001ye-QM for 48674@debbugs.gnu.org; Sat, 29 May 2021 05:21:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1622280060; bh=s0l/7Qaj01xLaDhk7Yy+SKHQ9A0KZ5mqttuupzqcf+U=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=SVRi8NRux6Mimod8CMomFcdCj4xEFkN7TFgILz7iNEndCqhXtHykYoSltb8cVH9Rd 9FgDf/Rn0/S9TGV/bSzjZGr8I6m4It/z7RVx4DGBzg+h8B9Exm64VnNYjFLENEQ4Rx X1nxwDUzwxCQTNwYbya3mCPEjJHQtBWtHGHoA8mY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.100] ([213.142.96.193]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MhD2O-1l8vUs2SsU-00eM7R; Sat, 29 May 2021 11:21:00 +0200 In-Reply-To: Content-Language: en-US X-Provags-ID: V03:K1:mRu6T7f57avz8nJWFlZ5gUz+FzcTdtdGWyS8Kolw1sqSeWLmcP+ Ypps4Y9eiooxUr40k4F5ecyboc67dbDHExGfuA0OrxMDXnyr6ElKaPIYPB69ljyWR9fuIrN Qkvhnmd5KTiksSdvWbQ9yhuK1K6dSqjTA6vopYder3bDOYJmYR5QhHO7lv5bVsiIWXn21T/ L0vLDGi1IxJABy02PpxRw== X-UI-Out-Filterresults: notjunk:1;V03:K0:DKyZJFzDtl8=:M45SHa4v02ZUxCwRJCHRa3 BwMFdhZ3mDwYuA/OhtP2PlL0pWQQTH0BTP6rqcvSG8kZXr7AoGU9mK3+DUXM1wR44OPbokSpc ps+TGRDvPosuLQZ0PmhrNv1CP0XIQHoIGTTWJ5hwg2yqBBfz5/3kQ9PXOn6rgIk84iWU/cFOm zetTDXXbCCi0O3pMoGUWIHYRMkjQc1F30RaY7HCF/gBCv+SoNy3qmCSym3TmMiLz8GWJq5DI/ RUa5/5YA1rfigKmaswUGQQ4FFsnf+JFuBE9JB6fff538PLxLC+HxaYLgSSH4MKunB1O6nDy3W 8oPmHzvKMmotMf3byYshfmJgt9vgQzxNJhzuNu9Tmg13diJWTF7g0ts6fqiME9ScKPTOVGLD6 eEvIZqfXlZHPbCVwgDTHdRppwJSGy5FISzPf5sBYI4ihh0OPg11GXQo04vmLwR3+vw+8U+SPB MplccXHEyxZnITt0cRzaRxt02nAtMsCKLpdQzTm5+kI7e3RpmOiX8BJ0cDdIbnnmCgRSP+xhc s5RzzGeeqHrWY6dX1wMefjimgULD0UpVK2bVdkCaAUJ+fasPdpwPMwyBs0s9MZgCFbZf3E/nZ uqqKE/sAbxd2kGd5zdrTInfAL3P9rW773Yt6M+FqzGYmvb/SGG49QPO2G9D7tfc93F0v4D7it 0E1Am40kAs1iu53eiDOB7AAcTxXHR95qs3ypY7lnnBl98HFJcbM1kUEV6r+CqGWDieOd322y0 5XPsQFsmqdLEM2jPQdSnyoQwx0x6+Mfu1ST1DnOg1/ufzyMeRwGWgQVEhEF+onHOGu+/RC6e 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:207523 Archived-At: > I think the following patch, along the above lines, solves the bug > completely. Could you review it for me, please? It fixes the bug and the potential use case I mentioned earlier. But for this part /* If the new frame's selected window is the mini-window, select some other window if we don't have an active minibuffer there. */ if (MINI_WINDOW_P (XWINDOW (FRAME_SELECTED_WINDOW (f))) && !live_minibuffer_p (XWINDOW (FRAME_SELECTED_WINDOW (f))->contents)) Fselect_window (Fframe_first_window (selected_frame), Qnil); I would first have to understand why such a minibuffer window should be OT1H its frame's selected window and OTOH not be active when switching back to that frame. As a user I can always do (select-window (minibuffer-window)) regardless of whether a minibuffer is active. Switching away from that window's frame and back to it is problematic in Emacs 27 - no window has the active cursor. You apparently fixed this by selecting the frame's first window when switching back. Right? One reason why I ask is because with emacs -Q and the present patch (setq default-frame-alist '((minibuffer . nil))) followed by C-x 5 2 and (select-window (minibuffer-window)) in the new frame violates the assertion on line 548 of window.c /* Fselect_frame called us back so we've done all the work already. */ eassert (EQ (window, selected_window)); with the backtrace below. Basically, I would try to avoid that a non-selected frame's selected window is an inactive minibuffer window. But I'm not sure how difficult it is to achieve that. martin #0 0x00000000005ac2a7 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:400 #1 0x00000000006593a5 in die (msg=0x792187 "EQ (window, selected_window)", file=0x791f12 "../../src/window.c", line=548) at ../../src/alloc.c:7451 #2 0x00000000004c8185 in select_window (window=XIL(0x11109dd), norecord=XIL(0), inhibit_point_swap=false) at ../../src/window.c:548 #3 0x00000000004c8315 in Fselect_window (window=XIL(0x11109dd), norecord=XIL(0)) at ../../src/window.c:625 #4 0x000000000069110e in eval_sub (form=XIL(0x1102163)) at ../../src/eval.c:2517 #5 0x000000000068af94 in Fprogn (body=XIL(0)) at ../../src/eval.c:471 #6 0x0000000000690cfc in eval_sub (form=XIL(0x1102123)) at ../../src/eval.c:2467 #7 0x0000000000690661 in Feval (form=XIL(0x1102123), lexical=XIL(0x30)) at ../../src/eval.c:2343 #8 0x0000000000692dc5 in funcall_subr (subr=0xc61600 , numargs=2, args=0x7fffffffce80) at ../../src/eval.c:3116 #9 0x000000000069285e in Ffuncall (nargs=3, args=0x7fffffffce78) at ../../src/eval.c:3039 #10 0x00000000006ec8e5 in exec_byte_code (bytestr=XIL(0x7ffff3e1e10c), vector=XIL(0x7ffff3e1ccd5), maxdepth=make_fixnum(18), args_template=make_fixnum(257), nargs=1, args=0x7fffffffd380) at ../../src/bytecode.c:632 #11 0x0000000000693026 in fetch_and_exec_byte_code (fun=XIL(0x7ffff3e1cca5), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffd378) at ../../src/eval.c:3163 #12 0x00000000006934ac in funcall_lambda (fun=XIL(0x7ffff3e1cca5), nargs=1, arg_vector=0x7fffffffd378) at ../../src/eval.c:3244 #13 0x00000000006928b2 in Ffuncall (nargs=2, args=0x7fffffffd370) at ../../src/eval.c:3043 #14 0x00000000006ec8e5 in exec_byte_code (bytestr=XIL(0x7ffff3e1e38c), vector=XIL(0x7ffff3e1cc45), maxdepth=make_fixnum(4), args_template=make_fixnum(257), nargs=1, args=0x7fffffffd978) at ../../src/bytecode.c:632 #15 0x0000000000693026 in fetch_and_exec_byte_code (fun=XIL(0x7ffff3e1cc0d), syms_left=make_fixnum(257), nargs=1, args=0x7fffffffd970) at ../../src/eval.c:3163 #16 0x00000000006934ac in funcall_lambda (fun=XIL(0x7ffff3e1cc0d), nargs=1, arg_vector=0x7fffffffd970) at ../../src/eval.c:3244 #17 0x00000000006928b2 in Ffuncall (nargs=2, args=0x7fffffffd968) at ../../src/eval.c:3043 #18 0x000000000068656e in Ffuncall_interactively (nargs=2, args=0x7fffffffd968) at ../../src/callint.c:260 #19 0x0000000000692c98 in funcall_subr (subr=0xc60e40 , numargs=2, args=0x7fffffffd968) at ../../src/eval.c:3094 #20 0x000000000069285e in Ffuncall (nargs=3, args=0x7fffffffd960) at ../../src/eval.c:3039 #21 0x0000000000688bf4 in Fcall_interactively (function=XIL(0x7ffff3134918), record_flag=XIL(0), keys=XIL(0x7ffff4375585)) at ../../src/callint.c:791 #22 0x0000000000692df1 in funcall_subr (subr=0xc60e80 , numargs=3, args=0x7fffffffdd40) at ../../src/eval.c:3119 #23 0x000000000069285e in Ffuncall (nargs=4, args=0x7fffffffdd38) at ../../src/eval.c:3039 #24 0x00000000006ec8e5 in exec_byte_code (bytestr=XIL(0x7ffff3db0ccc), vector=XIL(0x7ffff3db0935), maxdepth=make_fixnum(13), args_template=make_fixnum(1025), nargs=1, args=0x7fffffffe2b0) at ../../src/bytecode.c:632 #25 0x0000000000693026 in fetch_and_exec_byte_code (fun=XIL(0x7ffff3db0905), syms_left=make_fixnum(1025), nargs=1, args=0x7fffffffe2a8) at ../../src/eval.c:3163 #26 0x00000000006934ac in funcall_lambda (fun=XIL(0x7ffff3db0905), nargs=1, arg_vector=0x7fffffffe2a8) at ../../src/eval.c:3244 #27 0x00000000006928b2 in Ffuncall (nargs=2, args=0x7fffffffe2a0) at ../../src/eval.c:3043 #28 0x000000000069217b in call1 (fn=XIL(0x43e0), arg1=XIL(0x7ffff3134918)) at ../../src/eval.c:2899 #29 0x00000000005b4838 in command_loop_1 () at ../../src/keyboard.c:1466 #30 0x000000000068e3bd in internal_condition_case (bfun=0x5b3fdf , handlers=XIL(0x90), hfun=0x5b35ee ) at ../../src/eval.c:1478 #31 0x00000000005b3bc4 in command_loop_2 (ignore=XIL(0)) at ../../src/keyboard.c:1094 #32 0x000000000068d59a in internal_catch (tag=XIL(0xe100), func=0x5b3b97 , arg=XIL(0)) at ../../src/eval.c:1198 #33 0x00000000005b3b62 in command_loop () at ../../src/keyboard.c:1073 #34 0x00000000005b30d5 in recursive_edit_1 () at ../../src/keyboard.c:720 #35 0x00000000005b32cd in Frecursive_edit () at ../../src/keyboard.c:789 #36 0x00000000005af1a4 in main (argc=2, argv=0x7fffffffe7c8) at ../../src/emacs.c:2298 Lisp Backtrace: "select-window" (0xffffcaa0) "progn" (0xffffcc50) "eval" (0xffffce80) "elisp--eval-last-sexp" (0xffffd378) "eval-last-sexp" (0xffffd970) "funcall-interactively" (0xffffd968) "call-interactively" (0xffffdd40) "command-execute" (0xffffe2a8) (gdb)