Giter Club home page Giter Club logo

Comments (6)

lastquestion avatar lastquestion commented on June 3, 2024

#42 fixes this for TTY in minibuffer menu bar, but not dropdown menubar.

from explain-pause-mode.

lastquestion avatar lastquestion commented on June 3, 2024

Doesn't work in windowed mode, function for example menu-find-file-existing

from explain-pause-mode.

lastquestion avatar lastquestion commented on June 3, 2024

menu-find-file-existing ultimately calls x-file-dialog, opening a new issue for that later. Focusing this only on TTY.

from explain-pause-mode.

lastquestion avatar lastquestion commented on June 3, 2024

Notes:
F10 -> menu-bar-open (menu.el) -> popup-menu -> x-popup-menu (called a lot of places), C code -> menu_show_hook (C).

  • x-popup-menu only called in keyboard.c, in read_char_x_menu_prompt from read_char which we already covered in #17

Splits into
-> x_menu_show
-> ns_menu_show
-> w32_menu_show
-> tty_menu_show

  • Timers definitely run when menu is open. Add a test for this case. Also, what if minibuffer is open and THEN you open menu?

  • tty_menu_show -> tty_menu_activate -> read_menu_input -> read_menu_command -> read_key_sequence -> read_char is why

TL;DR we should be safe to advise x-popup-menu, on TTY at the very least. Insert a native frame like read_char family.

from explain-pause-mode.

lastquestion avatar lastquestion commented on June 3, 2024

Timer with minibuffer open THEN F10 without advising menu-bar-open

;; enter m-x
("enter" "execute-extended-command" "root-emacs" "root-emacs" nil 0 nil nil nil 1)
("enter" "completing-read-default" "execute-extended-command" "execute-extended-command" nil 0 nil nil nil 2)
;; advise read-from-minibuffer
("enter" "#<subr read-from-minibuffer>" "completing-read-default" "completing-read-default" t 0 nil nil nil 3)
;; timer runs
("enter" "silly" "#<subr read-from-minibuffer>" "timer" nil 0 nil nil nil 3)
("exit" "silly" "timer" 0 nil)
("enter" "silly" "#<subr read-from-minibuffer>" "timer" nil 0 nil nil nil 3)
("exit" "silly" "timer" 0 nil)
;; open menu-bar
("enter" "menu-bar-open" "#<subr read-from-minibuffer>" "#<subr read-from-minibuffer>" nil 0 nil nil nil 4)
;; close menu-bar with c-g
("exit" "menu-bar-open" "#<subr read-from-minibuffer>" 98114 profile)
;; close minibuffer with c-g
("enter" "abort-recursive-edit" "#<subr read-from-minibuffer>" "#<subr read-from-minibuffer>" nil 0 nil nil nil 4)
("exit" "abort-recursive-edit" "#<subr read-from-minibuffer>" 0 nil)
("exit" "#<subr read-from-minibuffer>" "completing-read-default" 6035 nil)
("exit" "completing-read-default" "execute-extended-command" 0 nil)
("exit" "execute-extended-command" "root-emacs" 0 nil)

from explain-pause-mode.

lastquestion avatar lastquestion commented on June 3, 2024
;; with advising `x-popup-menu`
("enter" "menu-bar-open" "root-emacs" "root-emacs" nil 0 nil nil nil 1)
("enter" "#<subr x-popup-menu>" "menu-bar-open" "menu-bar-open" t 0 nil nil nil 2)
("exit" "#<subr x-popup-menu>" "menu-bar-open" 5915 nil)
("exit" "menu-bar-open" "root-emacs" 1 nil)

from explain-pause-mode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.