tumashu / ivy-posframe

ivy-posframe is a ivy extension, which let ivy use posframe to show its candidate menu, ivy-posframe is a **GNU ELPA** package.
414 stars 26 forks source link

Cannot get out of M-o menu at once #103

Closed tttuuu888 closed 3 years ago

tttuuu888 commented 3 years ago

Hello @tumashu. I just found this issue. I cannot got out of M-o menus at once by ESC or C-g. I need to press ESC or C-g twice to escape from M-o menu.

The below screenshot explains all.

esc

You may reproduce with below steps. $ emacs -Q

(package-initialize)
(require 'ivy)
(require 'ivy-posframe)
(ivy-posframe-mode 1)

M-x ivy-switch-buffer M-o ESC or C-g then you can see "^[ is not bound" on minibuffer. ("^G is not bound", in case of C-g)

Thanks.

tttuuu888 commented 3 years ago

Ah I was a bit confused. ESC or C-g escapes from M-o menus. It just additionally enlarges minibuffer and print "^[ is not bound" as in the screenshot. Thanks.

tttuuu888 commented 3 years ago

I found one more symptom related to this issue. Pressing M-o from M-o menu supposed to escape right away too. However currently it print message "Wrong type argument: characterp, 134217839" and go back to normal menu after about 2 seconds. Though Pressing ESC from M-o menu escape right away with enlarging minibuffer with extra message.

Added: This seems like ivy issue. I tested this on terminal at first. Since I use ivy-posframe in GUI Emacs and ivy in terminal. M-o worked same with ESC because (read-key) -> M-o returns same result with ESC in terminal Emacs. However I found same warning message when I tested this with ivy functions on GUI Emacs.

I think ivy-posframe will also need to fix this but ivy should fix this first. I assume ivy-read-action-by-key should be updated in ivy, ivy-posframe-read-action-by-key in ivy-posframe.

tttuuu888 commented 3 years ago

When it comes to M-o I mentioned above, there is already an open issue in ivy repository. https://github.com/abo-abo/swiper/issues/2701

tttuuu888 commented 3 years ago

To sum up this issue,

  1. pressing ESC or C-g to close action list -> ivy-posframe shows '^[ is not bound' and minibuffer enlarged.

  2. pressing M-o to close action list -> wrong type 'Wrong type argument: characterp' error occurs. -> ivy has same issue and I think ivy need to fix this first.

Thanks.

tumashu commented 3 years ago

ok