Subject: 28.0.50; regression in commit c7c154bb, minibuffer is not closed after opening a file

From: Platon Pronko <[email-masked]>
Date: Mon, 11 Jan 2021 19:09:53 +0300

When I open a file using C-x C-f, minibuffer does not close after I finish typing the filename
- current window does not change at all, minibuffer stays open (as if Emacs "froze").
Pressing C-g or any other key unfreezes the window and file is displayed.

I bisected the problem to commit c7c154bb, "Fix incompleteness in the implementation of minibuffer-follows-selected-frame".

Problem is somehow related to the fact that I use dvorak input method.

The problem goes away if I comment out the section under "We've exited the recursive edit without an error" in minibuf.c.

Steps to reproduce:

1. init.el contents:

(define-minor-mode dvorak-minor-mode "Use english-dvorak input method." :lighter nil
   (if
     (not (string= " *Minibuf-0*" (buffer-name (current-buffer))))
     (if dvorak-minor-mode (activate-input-method "english-dvorak"))))
(define-global-minor-mode global-dvorak-mode dvorak-minor-mode dvorak-minor-mode)
(global-dvorak-mode t)

2. Start emacs with: ./src/emacs -Q --eval '(load-file "~/.emacs.d/init.el")'

3. Type C-x C-f, type in some text-file filename, press Return.

4. Observe no file being opened and "[DV@]" in minibuffer.

In GNU Emacs 28.0.50 (build 15, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.17.4)
  of 2021-01-11 built on the-big-maker
Repository revision: c7c154bb5756e0ae71d342c5d8aabf725877f186
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Arch Linux

Configured using:
  'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
  --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
  --with-sound=alsa --with-modules --without-gconf --without-gsettings
  --with-x-toolkit=gtk3 --without-xaw3d'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL
GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2

Important settings:
   value of $LC_TIME: en_SE.UTF-8
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
   global-dvorak-mode: t
   dvorak-minor-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils quail help-mode
easymenu cl-loaddefs cl-lib easy-mmode iso-transl tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting font-render-setting cairo move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 61568 4854)
  (symbols 48 7179 1)
  (strings 32 21381 1187)
  (string-bytes 1 655960)
  (vectors 16 13820)
  (vector-slots 8 173393 10673)
  (floats 8 22 45)
  (intervals 56 265 0)
  (buffers 984 13))