muffinmad / emacs-mini-frame

Show minibuffer in child frame on read-from-minibuffer
GNU General Public License v3.0
322 stars 20 forks source link

Resizing mini-fame doesn't work in 29.1? #78

Open zck opened 1 year ago

zck commented 1 year ago

I just upgraded to Emacs 29.1. Mini-frame works on its own, but when combined with Vertico (which also works on its own), it doesn't work anymore.

A screenshot is attached.

image

Reproduction instructions:

  1. Install Emacs 29.1
  2. Install vertico
    (package-install-file "~/.emacs.d/elpa/vertico-1.4/vertico.el")
    (vertico-mode 1)
  3. Test vertico with C-x C-f. It works properly; that is, I see vertical completions.
  4. Disable vertico
    (vertico-mode -1)
  5. Install mini-frame
    (package-install-file "~/.emacs.d/elpa/mini-frame-20220627.2041/mini-frame.el")
    (mini-frame-mode 1)
  6. Test mini-frame with C-x C-f. It works properly; that is, I see the single option at the top of the frame.
  7. Enable vertico mode again.
    (vertico-mode 1)
  8. Test with C-x C-f and see that it behaves weirdly. The look is as the screenshot above, and nothing is able to be selected. Pressing C-g several times in a row exits out of it, ususally.
muffinmad commented 1 year ago

Works for me. Just compiled recent Emacs 29 version and then in emacs -Q

  1. M-x package-initialize
  2. M-x vertico-mode
  3. M-x mini-frame-mode
  4. M-x
Screenshot 2023-08-23 at 00 51 31
GNU Emacs 29.1.50 (build 1, aarch64-apple-darwin22.5.0, NS appkit-2299.60 Version 13.4.1 (c) (Build 22F770820d))
muffinmad commented 1 year ago

@zck I've checked latest Emacs-mac build and see the same issue. But I can see the same behaviour without any packages just by using separate mini-buffer frame with resize-mini-frames turned on.

Can you please check if Emacs is working for you if you launch it like this:

emacs -Q --eval "(setq default-frame-alist '((minibuffer . nil)))" --eval "(setq resize-mini-frames t)"
zck commented 1 year ago

Weird! When I do that, I get two windows open.

Screenshot from 2023-08-30 09-31-53

When I run C-x b, it looks like this:

image

muffinmad commented 1 year ago

It is ok that two windows are created because we told Emacs that default frame should not contain mini-buffer, so separate window is created.

What is not ok is that I can not use Emacs in this case. Emacs just hangs when pressing C-x C-f to open some file.

Can you change the buffer after C-x b or your Emacs is hanging too?

zck commented 1 year ago

My emacs hangs as well.

muffinmad commented 1 year ago

Can you please report this issue to Emacs bugs tracker?

KindlyRepeat commented 11 months ago

Hi, using this command (omitting the second occurrence of --eval seems to fix the hanging:

emacs -Q --eval "(setq default-frame-alist '((minibuffer . nil))) (setq resize-mini-frames t)"
muffinmad commented 11 months ago

Hi, using this command (omitting the second occurrence of --eval seems to fix the hanging:

emacs -Q --eval "(setq default-frame-alist '((minibuffer . nil))) (setq resize-mini-frames t)"

The hanging is fixed because this way the resize-mini-frames variable is not set. You can check the variable value by C-h v resize-mini-frames.

KindlyRepeat commented 11 months ago

You're absolutely right, can't believe I didn't see that one.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67653