* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar @ 2014-11-20 16:27 Sam Steingold 2015-04-11 9:15 ` Jan D. 0 siblings, 1 reply; 21+ messages in thread From: Sam Steingold @ 2014-11-20 16:27 UTC (permalink / raw) To: 19120 In GNU Emacs 25.0.50.5 (x86_64-apple-darwin14.0.0, NS appkit-1343.16 Version 10.10.1 (Build 14B25)) of 2014-11-19 on sds-MacBook-Pro.local Repository revision: f437176169cf1722f99938845c35eb40bf139b2d Windowing system distributor `Apple', version 10.3.1343 Configured using: `configure --with-ns' <f10> runs the command menu-bar-open when I hit f10 I get the menu with 2 items ("search with google" and "add to itunes as a spoken track") near the reg/yellow/green buttons in the upper left corner. I do _not_ get the actual menu bar (Emacs/File/Edit/Options/Buffers/Tools/Field/Message/Text/Attacments/Help) Configured features: IMAGEMAGICK ACL GNUTLS LIBXML2 ZLIB Important settings: value of $LANG: C locale-coding-system: utf-8-unix Major mode: iESS Minor modes in effect: diff-auto-refine-mode: t rcirc-track-minor-mode: t which-function-mode: t url-handler-mode: t show-paren-mode: t desktop-save-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-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 column-number-mode: t line-number-mode: t Recent messages: Quit Executing SQL command... Quit [2 times] Executing SQL command...done Mark saved where search started C-c C-t is undefined [2 times] C-c C-l r is undefined Scanning for dabbrevs...done [2 times] dabbrev--substitute-expansion: Search failed: "Advertising" Executing SQL command...done Load-path shadows: None found. Features: (shadow bbdb-message mailalias cookie1 nnir emacsbug sendmail smerge-mode pp ispell log-edit pcvs-util vc-bzr vc-sccs vc-svn vc-cvs vc-rcs tramp tramp-compat tramp-loaddefs trampver grep cal-move cal-x cal-china cal-bahai cal-islam cal-julian holidays hol-loaddefs cal-iso cal-hebrew lunar solar cal-dst appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs jka-compr eieio-opt speedbar sb-image ezimage dframe find-func apropos inf-lisp cl-indent skeleton sort gnus-cite smiley shr mm-archive gnus-bcklg mule-util url-expand url-util url-methods gnus-async gnus-dup qp mail-extr gnus-ml hl-line help-mode debug dabbrev disp-table misearch multi-isearch spam spam-stat gnus-uu yenc nndraft nnmh gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap utf-7 gnus-cache gnus-sum time-stamp bbdb-gnus gnutls network-stream starttls nntp gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win remember image-mode info js cperl-mode conf-mode dired-aux cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine make-mode tex-mode sh-script smie python json message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader bug-reference dired vc-hg vc-dir ewoc vc vc-dispatcher sql view vc-git diff-mode easy-mmode pig-mode add-log package epg-config midnight warnings gnus gnus-ems nnheader mail-utils wid-edit bbdb-mua bbdb-com crm mailabbrev bbdb-loaddefs bbdb bbdb-site timezone rcirc server which-func imenu url-handlers url-parse auth-source cl-macs eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core gnus-util mm-util mail-prsvr password-cache url-vars paren help-at-pt desktop frameset cus-start cus-load ido ess-toolbar ess-mouse mouseme thingatpt browse-url ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a shell pcomplete ess-sta-d ess-sta-l cc-vars cc-defs make-regexp ess-sp6-d ess-sp3-d ess-julia ess-r-d compile ess-tracebug format-spec ess-roxy advice help-fns hideshow ess-help ess-developer ess-r-args ess-s-l ess ess-inf comint ansi-color ring ess-mode ess-noweb-mode ess-utils ess-custom executable easymenu ess-compat ess-site cl gv cl-loaddefs cl-lib time-date tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process cocoa ns multi-tty emacs) Memory information: ((conses 16 681614 96441) (symbols 48 70959 0) (miscs 40 7667 2548) (strings 32 200638 5512) (string-bytes 1 5201413) (vectors 16 54443) (vector-slots 8 919902 43141) (floats 8 942 2302) (intervals 56 27513 7) (buffers 976 140)) -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1343 http://www.childpsy.net/ http://openvotingconsortium.org http://americancensorship.org http://dhimmi.org http://thereligionofpeace.com If Microsoft wrote poetry, it would have patented dactyl and anapest. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2014-11-20 16:27 bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar Sam Steingold @ 2015-04-11 9:15 ` Jan D. 2015-04-12 7:29 ` Sam Steingold 0 siblings, 1 reply; 21+ messages in thread From: Jan D. @ 2015-04-11 9:15 UTC (permalink / raw) To: sds; +Cc: 19120 Hi. There is a sort of implementation of this in trunk. It opens the menu bar menus as a popup, but does not activate the menu bar like on X. It seems to be hard to do in NS. Jan D. > 20 nov 2014 kl. 17:27 skrev Sam Steingold <sds@gnu.org>: > > In GNU Emacs 25.0.50.5 (x86_64-apple-darwin14.0.0, NS appkit-1343.16 Version 10.10.1 (Build 14B25)) > of 2014-11-19 on sds-MacBook-Pro.local > Repository revision: f437176169cf1722f99938845c35eb40bf139b2d > Windowing system distributor `Apple', version 10.3.1343 > Configured using: > `configure --with-ns' > > <f10> runs the command menu-bar-open > when I hit f10 I get the menu with 2 items ("search with google" and > "add to itunes as a spoken track") near the reg/yellow/green buttons in > the upper left corner. > I do _not_ get the actual menu bar > (Emacs/File/Edit/Options/Buffers/Tools/Field/Message/Text/Attacments/Help) > > > Configured features: > IMAGEMAGICK ACL GNUTLS LIBXML2 ZLIB > > Important settings: > value of $LANG: C > locale-coding-system: utf-8-unix > > Major mode: iESS > > Minor modes in effect: > diff-auto-refine-mode: t > rcirc-track-minor-mode: t > which-function-mode: t > url-handler-mode: t > show-paren-mode: t > desktop-save-mode: t > shell-dirtrack-mode: t > tooltip-mode: t > global-eldoc-mode: t > eldoc-mode: t > electric-indent-mode: t > mouse-wheel-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 > column-number-mode: t > line-number-mode: t > > Recent messages: > Quit > Executing SQL command... > Quit [2 times] > Executing SQL command...done > Mark saved where search started > C-c C-t is undefined [2 times] > C-c C-l r is undefined > Scanning for dabbrevs...done [2 times] > dabbrev--substitute-expansion: Search failed: "Advertising" > Executing SQL command...done > > Load-path shadows: > None found. > > Features: > (shadow bbdb-message mailalias cookie1 nnir emacsbug sendmail > smerge-mode pp ispell log-edit pcvs-util vc-bzr vc-sccs vc-svn vc-cvs > vc-rcs tramp tramp-compat tramp-loaddefs trampver grep cal-move cal-x > cal-china cal-bahai cal-islam cal-julian holidays hol-loaddefs cal-iso > cal-hebrew lunar solar cal-dst appt diary-lib diary-loaddefs cal-menu > calendar cal-loaddefs jka-compr eieio-opt speedbar sb-image ezimage > dframe find-func apropos inf-lisp cl-indent skeleton sort gnus-cite > smiley shr mm-archive gnus-bcklg mule-util url-expand url-util > url-methods gnus-async gnus-dup qp mail-extr gnus-ml hl-line help-mode > debug dabbrev disp-table misearch multi-isearch spam spam-stat gnus-uu > yenc nndraft nnmh gnus-agent gnus-srvr gnus-score score-mode nnvirtual > gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap > utf-7 gnus-cache gnus-sum time-stamp bbdb-gnus gnutls network-stream > starttls nntp gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail > mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range > gnus-win remember image-mode info js cperl-mode conf-mode dired-aux > cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine > make-mode tex-mode sh-script smie python json message rfc822 mml mml-sec > mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 > ietf-drums gmm-utils mailheader bug-reference dired vc-hg vc-dir ewoc vc > vc-dispatcher sql view vc-git diff-mode easy-mmode pig-mode add-log > package epg-config midnight warnings gnus gnus-ems nnheader mail-utils > wid-edit bbdb-mua bbdb-com crm mailabbrev bbdb-loaddefs bbdb bbdb-site > timezone rcirc server which-func imenu url-handlers url-parse > auth-source cl-macs eieio byte-opt bytecomp byte-compile cl-extra cconv > eieio-core gnus-util mm-util mail-prsvr password-cache url-vars paren > help-at-pt desktop frameset cus-start cus-load ido ess-toolbar ess-mouse > mouseme thingatpt browse-url ess-menu ess-swv ess-noweb > ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l > ess-sas-a shell pcomplete ess-sta-d ess-sta-l cc-vars cc-defs > make-regexp ess-sp6-d ess-sp3-d ess-julia ess-r-d compile ess-tracebug > format-spec ess-roxy advice help-fns hideshow ess-help ess-developer > ess-r-args ess-s-l ess ess-inf comint ansi-color ring ess-mode > ess-noweb-mode ess-utils ess-custom executable easymenu ess-compat > ess-site cl gv cl-loaddefs cl-lib time-date tooltip eldoc electric > uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd > fontset image regexp-opt fringe tabulated-list newcomment elisp-mode > lisp-mode prog-mode register page menu-bar rfn-eshadow timer select > scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham > georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao > korean japanese hebrew greek romanian slovak czech european ethiopic > indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple > abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files > text-properties overlay sha1 md5 base64 format env code-pages mule > custom widget hashtable-print-readable backquote make-network-process > cocoa ns multi-tty emacs) > > Memory information: > ((conses 16 681614 96441) > (symbols 48 70959 0) > (miscs 40 7667 2548) > (strings 32 200638 5512) > (string-bytes 1 5201413) > (vectors 16 54443) > (vector-slots 8 919902 43141) > (floats 8 942 2302) > (intervals 56 27513 7) > (buffers 976 140)) > > -- > Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1343 > http://www.childpsy.net/ http://openvotingconsortium.org > http://americancensorship.org http://dhimmi.org http://thereligionofpeace.com > If Microsoft wrote poetry, it would have patented dactyl and anapest. > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2015-04-11 9:15 ` Jan D. @ 2015-04-12 7:29 ` Sam Steingold 2015-04-12 8:04 ` Jan D. 0 siblings, 1 reply; 21+ messages in thread From: Sam Steingold @ 2015-04-12 7:29 UTC (permalink / raw) To: Jan D.; +Cc: 19120 Yes, _I_ did that implementation. :-) still, it would be nice to be able to tell emacs to pass certain keys to the OS. it _can_ be done on w32, so why not here too? On Sat, Apr 11, 2015 at 5:15 AM, Jan D. <jan.h.d@swipnet.se> wrote: > Hi. > > There is a sort of implementation of this in trunk. It opens the menu bar menus as a popup, but does not activate the menu bar like on X. It seems to be hard to do in NS. > > Jan D. > >> 20 nov 2014 kl. 17:27 skrev Sam Steingold <sds@gnu.org>: >> >> In GNU Emacs 25.0.50.5 (x86_64-apple-darwin14.0.0, NS appkit-1343.16 Version 10.10.1 (Build 14B25)) >> of 2014-11-19 on sds-MacBook-Pro.local >> Repository revision: f437176169cf1722f99938845c35eb40bf139b2d >> Windowing system distributor `Apple', version 10.3.1343 >> Configured using: >> `configure --with-ns' >> >> <f10> runs the command menu-bar-open >> when I hit f10 I get the menu with 2 items ("search with google" and >> "add to itunes as a spoken track") near the reg/yellow/green buttons in >> the upper left corner. >> I do _not_ get the actual menu bar >> (Emacs/File/Edit/Options/Buffers/Tools/Field/Message/Text/Attacments/Help) >> >> >> Configured features: >> IMAGEMAGICK ACL GNUTLS LIBXML2 ZLIB >> >> Important settings: >> value of $LANG: C >> locale-coding-system: utf-8-unix >> >> Major mode: iESS >> >> Minor modes in effect: >> diff-auto-refine-mode: t >> rcirc-track-minor-mode: t >> which-function-mode: t >> url-handler-mode: t >> show-paren-mode: t >> desktop-save-mode: t >> shell-dirtrack-mode: t >> tooltip-mode: t >> global-eldoc-mode: t >> eldoc-mode: t >> electric-indent-mode: t >> mouse-wheel-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 >> column-number-mode: t >> line-number-mode: t >> >> Recent messages: >> Quit >> Executing SQL command... >> Quit [2 times] >> Executing SQL command...done >> Mark saved where search started >> C-c C-t is undefined [2 times] >> C-c C-l r is undefined >> Scanning for dabbrevs...done [2 times] >> dabbrev--substitute-expansion: Search failed: "Advertising" >> Executing SQL command...done >> >> Load-path shadows: >> None found. >> >> Features: >> (shadow bbdb-message mailalias cookie1 nnir emacsbug sendmail >> smerge-mode pp ispell log-edit pcvs-util vc-bzr vc-sccs vc-svn vc-cvs >> vc-rcs tramp tramp-compat tramp-loaddefs trampver grep cal-move cal-x >> cal-china cal-bahai cal-islam cal-julian holidays hol-loaddefs cal-iso >> cal-hebrew lunar solar cal-dst appt diary-lib diary-loaddefs cal-menu >> calendar cal-loaddefs jka-compr eieio-opt speedbar sb-image ezimage >> dframe find-func apropos inf-lisp cl-indent skeleton sort gnus-cite >> smiley shr mm-archive gnus-bcklg mule-util url-expand url-util >> url-methods gnus-async gnus-dup qp mail-extr gnus-ml hl-line help-mode >> debug dabbrev disp-table misearch multi-isearch spam spam-stat gnus-uu >> yenc nndraft nnmh gnus-agent gnus-srvr gnus-score score-mode nnvirtual >> gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap >> utf-7 gnus-cache gnus-sum time-stamp bbdb-gnus gnutls network-stream >> starttls nntp gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail >> mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range >> gnus-win remember image-mode info js cperl-mode conf-mode dired-aux >> cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine >> make-mode tex-mode sh-script smie python json message rfc822 mml mml-sec >> mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 >> ietf-drums gmm-utils mailheader bug-reference dired vc-hg vc-dir ewoc vc >> vc-dispatcher sql view vc-git diff-mode easy-mmode pig-mode add-log >> package epg-config midnight warnings gnus gnus-ems nnheader mail-utils >> wid-edit bbdb-mua bbdb-com crm mailabbrev bbdb-loaddefs bbdb bbdb-site >> timezone rcirc server which-func imenu url-handlers url-parse >> auth-source cl-macs eieio byte-opt bytecomp byte-compile cl-extra cconv >> eieio-core gnus-util mm-util mail-prsvr password-cache url-vars paren >> help-at-pt desktop frameset cus-start cus-load ido ess-toolbar ess-mouse >> mouseme thingatpt browse-url ess-menu ess-swv ess-noweb >> ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l >> ess-sas-a shell pcomplete ess-sta-d ess-sta-l cc-vars cc-defs >> make-regexp ess-sp6-d ess-sp3-d ess-julia ess-r-d compile ess-tracebug >> format-spec ess-roxy advice help-fns hideshow ess-help ess-developer >> ess-r-args ess-s-l ess ess-inf comint ansi-color ring ess-mode >> ess-noweb-mode ess-utils ess-custom executable easymenu ess-compat >> ess-site cl gv cl-loaddefs cl-lib time-date tooltip eldoc electric >> uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd >> fontset image regexp-opt fringe tabulated-list newcomment elisp-mode >> lisp-mode prog-mode register page menu-bar rfn-eshadow timer select >> scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham >> georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao >> korean japanese hebrew greek romanian slovak czech european ethiopic >> indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple >> abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files >> text-properties overlay sha1 md5 base64 format env code-pages mule >> custom widget hashtable-print-readable backquote make-network-process >> cocoa ns multi-tty emacs) >> >> Memory information: >> ((conses 16 681614 96441) >> (symbols 48 70959 0) >> (miscs 40 7667 2548) >> (strings 32 200638 5512) >> (string-bytes 1 5201413) >> (vectors 16 54443) >> (vector-slots 8 919902 43141) >> (floats 8 942 2302) >> (intervals 56 27513 7) >> (buffers 976 140)) >> >> -- >> Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1343 >> http://www.childpsy.net/ http://openvotingconsortium.org >> http://americancensorship.org http://dhimmi.org http://thereligionofpeace.com >> If Microsoft wrote poetry, it would have patented dactyl and anapest. >> >> > -- Sam Steingold <http://sds.podval.org> <http://www.childpsy.net/> ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2015-04-12 7:29 ` Sam Steingold @ 2015-04-12 8:04 ` Jan D. 2015-04-14 20:41 ` Sam Steingold 0 siblings, 1 reply; 21+ messages in thread From: Jan D. @ 2015-04-12 8:04 UTC (permalink / raw) To: Sam Steingold; +Cc: 19120 Hi. > 12 apr 2015 kl. 09:29 skrev Sam Steingold <sds@gnu.org>: > > Yes, _I_ did that implementation. :-) :-) > still, it would be nice to be able to tell emacs to pass certain keys to the OS. > it _can_ be done on w32, so why not here too? > W32 and Cocoa are different API:s? Jan D. > On Sat, Apr 11, 2015 at 5:15 AM, Jan D. <jan.h.d@swipnet.se> wrote: >> Hi. >> >> There is a sort of implementation of this in trunk. It opens the menu bar menus as a popup, but does not activate the menu bar like on X. It seems to be hard to do in NS. >> >> Jan D. >> >>> 20 nov 2014 kl. 17:27 skrev Sam Steingold <sds@gnu.org>: >>> >>> In GNU Emacs 25.0.50.5 (x86_64-apple-darwin14.0.0, NS appkit-1343.16 Version 10.10.1 (Build 14B25)) >>> of 2014-11-19 on sds-MacBook-Pro.local >>> Repository revision: f437176169cf1722f99938845c35eb40bf139b2d >>> Windowing system distributor `Apple', version 10.3.1343 >>> Configured using: >>> `configure --with-ns' >>> >>> <f10> runs the command menu-bar-open >>> when I hit f10 I get the menu with 2 items ("search with google" and >>> "add to itunes as a spoken track") near the reg/yellow/green buttons in >>> the upper left corner. >>> I do _not_ get the actual menu bar >>> (Emacs/File/Edit/Options/Buffers/Tools/Field/Message/Text/Attacments/Help) >>> >>> >>> Configured features: >>> IMAGEMAGICK ACL GNUTLS LIBXML2 ZLIB >>> >>> Important settings: >>> value of $LANG: C >>> locale-coding-system: utf-8-unix >>> >>> Major mode: iESS >>> >>> Minor modes in effect: >>> diff-auto-refine-mode: t >>> rcirc-track-minor-mode: t >>> which-function-mode: t >>> url-handler-mode: t >>> show-paren-mode: t >>> desktop-save-mode: t >>> shell-dirtrack-mode: t >>> tooltip-mode: t >>> global-eldoc-mode: t >>> eldoc-mode: t >>> electric-indent-mode: t >>> mouse-wheel-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 >>> column-number-mode: t >>> line-number-mode: t >>> >>> Recent messages: >>> Quit >>> Executing SQL command... >>> Quit [2 times] >>> Executing SQL command...done >>> Mark saved where search started >>> C-c C-t is undefined [2 times] >>> C-c C-l r is undefined >>> Scanning for dabbrevs...done [2 times] >>> dabbrev--substitute-expansion: Search failed: "Advertising" >>> Executing SQL command...done >>> >>> Load-path shadows: >>> None found. >>> >>> Features: >>> (shadow bbdb-message mailalias cookie1 nnir emacsbug sendmail >>> smerge-mode pp ispell log-edit pcvs-util vc-bzr vc-sccs vc-svn vc-cvs >>> vc-rcs tramp tramp-compat tramp-loaddefs trampver grep cal-move cal-x >>> cal-china cal-bahai cal-islam cal-julian holidays hol-loaddefs cal-iso >>> cal-hebrew lunar solar cal-dst appt diary-lib diary-loaddefs cal-menu >>> calendar cal-loaddefs jka-compr eieio-opt speedbar sb-image ezimage >>> dframe find-func apropos inf-lisp cl-indent skeleton sort gnus-cite >>> smiley shr mm-archive gnus-bcklg mule-util url-expand url-util >>> url-methods gnus-async gnus-dup qp mail-extr gnus-ml hl-line help-mode >>> debug dabbrev disp-table misearch multi-isearch spam spam-stat gnus-uu >>> yenc nndraft nnmh gnus-agent gnus-srvr gnus-score score-mode nnvirtual >>> gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap >>> utf-7 gnus-cache gnus-sum time-stamp bbdb-gnus gnutls network-stream >>> starttls nntp gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail >>> mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range >>> gnus-win remember image-mode info js cperl-mode conf-mode dired-aux >>> cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine >>> make-mode tex-mode sh-script smie python json message rfc822 mml mml-sec >>> mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 >>> ietf-drums gmm-utils mailheader bug-reference dired vc-hg vc-dir ewoc vc >>> vc-dispatcher sql view vc-git diff-mode easy-mmode pig-mode add-log >>> package epg-config midnight warnings gnus gnus-ems nnheader mail-utils >>> wid-edit bbdb-mua bbdb-com crm mailabbrev bbdb-loaddefs bbdb bbdb-site >>> timezone rcirc server which-func imenu url-handlers url-parse >>> auth-source cl-macs eieio byte-opt bytecomp byte-compile cl-extra cconv >>> eieio-core gnus-util mm-util mail-prsvr password-cache url-vars paren >>> help-at-pt desktop frameset cus-start cus-load ido ess-toolbar ess-mouse >>> mouseme thingatpt browse-url ess-menu ess-swv ess-noweb >>> ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l >>> ess-sas-a shell pcomplete ess-sta-d ess-sta-l cc-vars cc-defs >>> make-regexp ess-sp6-d ess-sp3-d ess-julia ess-r-d compile ess-tracebug >>> format-spec ess-roxy advice help-fns hideshow ess-help ess-developer >>> ess-r-args ess-s-l ess ess-inf comint ansi-color ring ess-mode >>> ess-noweb-mode ess-utils ess-custom executable easymenu ess-compat >>> ess-site cl gv cl-loaddefs cl-lib time-date tooltip eldoc electric >>> uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd >>> fontset image regexp-opt fringe tabulated-list newcomment elisp-mode >>> lisp-mode prog-mode register page menu-bar rfn-eshadow timer select >>> scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham >>> georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao >>> korean japanese hebrew greek romanian slovak czech european ethiopic >>> indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple >>> abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files >>> text-properties overlay sha1 md5 base64 format env code-pages mule >>> custom widget hashtable-print-readable backquote make-network-process >>> cocoa ns multi-tty emacs) >>> >>> Memory information: >>> ((conses 16 681614 96441) >>> (symbols 48 70959 0) >>> (miscs 40 7667 2548) >>> (strings 32 200638 5512) >>> (string-bytes 1 5201413) >>> (vectors 16 54443) >>> (vector-slots 8 919902 43141) >>> (floats 8 942 2302) >>> (intervals 56 27513 7) >>> (buffers 976 140)) >>> >>> -- >>> Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1343 >>> http://www.childpsy.net/ http://openvotingconsortium.org >>> http://americancensorship.org http://dhimmi.org http://thereligionofpeace.com >>> If Microsoft wrote poetry, it would have patented dactyl and anapest. >>> >>> >> > > > > -- > Sam Steingold <http://sds.podval.org> <http://www.childpsy.net/> ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2015-04-12 8:04 ` Jan D. @ 2015-04-14 20:41 ` Sam Steingold 2015-04-19 7:44 ` Jan D. 0 siblings, 1 reply; 21+ messages in thread From: Sam Steingold @ 2015-04-14 20:41 UTC (permalink / raw) To: Jan D.; +Cc: 19120 Hi, > * Jan D. <wna.u.q@fjvcarg.fr> [2015-04-12 10:04:09 +0200]: > >> still, it would be nice to be able to tell emacs to pass certain keys to the OS. >> it _can_ be done on w32, so why not here too? > > W32 and Cocoa are different API:s? I think it is done here: http://www.math.s.chiba-u.ac.jp/~mituharu/emacs-mac.git by YAMAMOTO Mitsuharu. -- Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1347 http://www.childpsy.net/ http://think-israel.org http://www.memritv.org http://camera.org http://ffii.org http://mideasttruth.com http://memri.org If money were measured in piles, I would have had a pit of it. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2015-04-14 20:41 ` Sam Steingold @ 2015-04-19 7:44 ` Jan D. 2021-10-20 2:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Jan D. @ 2015-04-19 7:44 UTC (permalink / raw) To: sds; +Cc: 19120 > 14 apr 2015 kl. 22:41 skrev Sam Steingold <sds@gnu.org>: > > Hi, > >> * Jan D. <wna.u.q@fjvcarg.fr> [2015-04-12 10:04:09 +0200]: >> >>> still, it would be nice to be able to tell emacs to pass certain keys to the OS. >>> it _can_ be done on w32, so why not here too? >> >> W32 and Cocoa are different API:s? > > I think it is done here: > http://www.math.s.chiba-u.ac.jp/~mituharu/emacs-mac.git > by YAMAMOTO Mitsuharu. He fakes a keyclick on the apple menu. Not that hard to do, patches welcome. Jan D. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2015-04-19 7:44 ` Jan D. @ 2021-10-20 2:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-20 9:53 ` Robert Pluim 0 siblings, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-20 2:59 UTC (permalink / raw) To: Jan D.; +Cc: 19120, sds, alan [-- Attachment #1: Type: text/plain, Size: 432 bytes --] "Jan D." <jan.h.d@swipnet.se> writes: > He fakes a keyclick on the apple menu. Not that hard to do, patches welcome. I think I may have found a cleaner solution to this. But there is one problem: only the code for GNUstep utilizing [NSMenu display] has been tested. I don't know if the Cocoa-specific code will work. Sam, please test the attached change, thanks. Alan, how does this look to you? Do you think it will work? [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Support-opening-the-toolkit-menu-bar-on-NS.patch --] [-- Type: text/x-patch, Size: 4230 bytes --] From 4e3fe6b4c0027dada181892c019e49f8003612fe Mon Sep 17 00:00:00 2001 From: Po Lu <luangruo@yahoo.com> Date: Wed, 20 Oct 2021 10:54:27 +0800 Subject: [PATCH] Support opening the toolkit menu bar on NS * src/nsmenu.m (ns_activate_menubar, Fns_open_menubar): New functions. * src/nsterm.m (ns_create_terminal): Add activate_menubar_hook. * lisp/menu-bar.el (menu-bar-open): Use ns-menu-bar-open on Nextstep. --- lisp/menu-bar.el | 8 +++++--- src/nsmenu.m | 41 ++++++++++++++++++++++++++++++++++++++++- src/nsterm.m | 1 + 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 980ba2fcd1..2ef24cf111 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -2659,9 +2659,10 @@ menu-bar-open this is the numeric argument to the command. This function decides which method to use to access the menu depending on FRAME's terminal device. On X displays, it calls -`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; otherwise it -calls either `popup-menu' or `tmm-menubar' depending on whether -`tty-menu-open-use-tmm' is nil or not. +`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; +on NS, `ns-menu-bar-open'; otherwise it calls either `popup-menu' +or `tmm-menubar' depending on whether `tty-menu-open-use-tmm' +is nil or not. If FRAME is nil or not given, use the selected frame." (interactive @@ -2670,6 +2671,7 @@ menu-bar-open (cond ((eq type 'x) (x-menu-bar-open frame)) ((eq type 'w32) (w32-menu-bar-open frame)) + ((eq type 'ns) (ns-menu-bar-open frame)) ((and (null tty-menu-open-use-tmm) (not (zerop (or (frame-parameter nil 'menu-bar-lines) 0)))) ;; Make sure the menu bar is up to date. One situation where diff --git a/src/nsmenu.m b/src/nsmenu.m index 333a8b50a1..359a9c3bc8 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1451,7 +1451,30 @@ - (NSRect) frame @end /* EmacsTooltip */ +void +ns_activate_menubar (struct frame *frame) +{ + if (frame != SELECTED_FRAME () + || !FRAME_EXTERNAL_MENU_BAR (frame)) + return; + block_input (); + NSApplication *app = [NSApplication sharedApplication]; + NSMenu *menu = [app mainMenu]; + for (NSMenuItem *item in [menu itemArray]) + { + if ([item hasSubmenu]) + { +#ifdef NS_IMPL_GNUSTEP + [[item submenu] display]; +#else + [menu performActionForItemAtIndex: [menu indexOfItem: item]]; +#endif + break; + } + } + unblock_input (); +} /* ========================================================================== @@ -1883,7 +1906,6 @@ - (Lisp_Object)runDialogAt: (NSPoint)p @end - /* ========================================================================== Lisp definitions @@ -1906,6 +1928,22 @@ - (Lisp_Object)runDialogAt: (NSPoint)p return popup_activated () ? Qt : Qnil; } +DEFUN ("ns-menu-bar-open", Fns_menu_bar_open, Sns_menu_bar_open, 0, 1, "i", + doc: /* Start key navigation of the menu bar in FRAME. +This initially opens the first menu bar item and you can then navigate with the +arrow keys, select a menu entry with the return key or cancel with the +escape key. If FRAME has no menu bar this function does nothing. + +If FRAME is nil or not given, use the selected frame. */) + (Lisp_Object frame) +{ + struct frame *f = decode_window_system_frame (frame); + + ns_activate_menubar (f); + + return Qnil; +} + /* ========================================================================== Lisp interface declaration @@ -1917,6 +1955,7 @@ - (Lisp_Object)runDialogAt: (NSPoint)p { defsubr (&Sns_reset_menu); defsubr (&Smenu_or_popup_active_p); + defsubr (&Sns_menu_bar_open); DEFSYM (Qdebug_on_next_call, "debug-on-next-call"); } diff --git a/src/nsterm.m b/src/nsterm.m index e0b7143e29..cd322b1fce 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5071,6 +5071,7 @@ static Lisp_Object ns_new_font (struct frame *f, Lisp_Object font_object, terminal->delete_frame_hook = ns_destroy_window; terminal->delete_terminal_hook = ns_delete_terminal; terminal->change_tab_bar_height_hook = ns_change_tab_bar_height; + terminal->activate_menubar_hook = ns_activate_menubar; /* Other hooks are NULL by default. */ return terminal; -- 2.31.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-20 2:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-20 9:53 ` Robert Pluim 2021-10-20 10:26 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Robert Pluim @ 2021-10-20 9:53 UTC (permalink / raw) To: Po Lu; +Cc: 19120, sds, alan, Jan D. >>>>> On Wed, 20 Oct 2021 10:59:45 +0800, Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> said: reports> "Jan D." <jan.h.d@swipnet.se> writes: >> He fakes a keyclick on the apple menu. Not that hard to do, patches welcome. reports> I think I may have found a cleaner solution to this. But there is one reports> problem: only the code for GNUstep utilizing [NSMenu display] has been reports> tested. reports> I don't know if the Cocoa-specific code will work. Sam, please test the reports> attached change, thanks. reports> Alan, how does this look to you? Do you think it will work? It doesnʼt crash, and performActionForItemAtIndex is called, but it doesnʼt actually cause anything to happen (on macOS). Robert -- ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-20 9:53 ` Robert Pluim @ 2021-10-20 10:26 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-20 12:36 ` Robert Pluim 0 siblings, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-20 10:26 UTC (permalink / raw) To: Robert Pluim; +Cc: sds, 19120, Jan D., alan Robert Pluim <rpluim@gmail.com> writes: > reports> I think I may have found a cleaner solution to this. But there is one > reports> problem: only the code for GNUstep utilizing [NSMenu display] has been > reports> tested. > > reports> I don't know if the Cocoa-specific code will work. Sam, please test the > reports> attached change, thanks. > > reports> Alan, how does this look to you? Do you think it will work? > It doesnʼt crash, and performActionForItemAtIndex is called, but it > doesnʼt actually cause anything to happen (on macOS). > > Robert Hmm, thanks. Do you know of a good solution for this aside from generating a fake mouse click event? ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-20 10:26 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-20 12:36 ` Robert Pluim 2021-10-20 20:47 ` Alan Third 0 siblings, 1 reply; 21+ messages in thread From: Robert Pluim @ 2021-10-20 12:36 UTC (permalink / raw) To: Po Lu; +Cc: 19120, sds, alan >>>>> On Wed, 20 Oct 2021 18:26:21 +0800, Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> said: >> It doesnʼt crash, and performActionForItemAtIndex is called, but it >> doesnʼt actually cause anything to happen (on macOS). >> >> Robert Po> Hmm, thanks. Do you know of a good solution for this aside from Po> generating a fake mouse click event? No. Googling indicates that performActionForItemAtIndex is the way to do this, so I donʼt know why it isnʼt working. Robert -- ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-20 12:36 ` Robert Pluim @ 2021-10-20 20:47 ` Alan Third 2021-10-21 0:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Alan Third @ 2021-10-20 20:47 UTC (permalink / raw) To: Robert Pluim; +Cc: Po Lu, 19120, sds On Wed, Oct 20, 2021 at 02:36:47PM +0200, Robert Pluim wrote: > >>>>> On Wed, 20 Oct 2021 18:26:21 +0800, Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> said: > > >> It doesnʼt crash, and performActionForItemAtIndex is called, but it > >> doesnʼt actually cause anything to happen (on macOS). > >> > >> Robert > > Po> Hmm, thanks. Do you know of a good solution for this aside from > Po> generating a fake mouse click event? > > No. Googling indicates that performActionForItemAtIndex is the way to > do this, so I donʼt know why it isnʼt working. Is there a reason to avoid faking a mouse event? Assuming the first answer here is correct: https://stackoverflow.com/questions/21583559/nsmenu-programmatically-select-item it looks quite straightforward and clean. -- Alan Third ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-20 20:47 ` Alan Third @ 2021-10-21 0:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-23 10:18 ` Alan Third 0 siblings, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-21 0:21 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 Alan Third <alan@idiocy.org> writes: > Is there a reason to avoid faking a mouse event? > > Assuming the first answer here is correct: > > https://stackoverflow.com/questions/21583559/nsmenu-programmatically-select-item > > it looks quite straightforward and clean. Aren't performClick and selectItemAtIndex only for popup menus, which the system menu bar is not? Thanks. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-21 0:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-23 10:18 ` Alan Third 2021-10-24 7:14 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-24 7:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 2 replies; 21+ messages in thread From: Alan Third @ 2021-10-23 10:18 UTC (permalink / raw) To: Po Lu; +Cc: Robert Pluim, sds, 19120 On Thu, Oct 21, 2021 at 08:21:56AM +0800, Po Lu wrote: > Alan Third <alan@idiocy.org> writes: > > > Is there a reason to avoid faking a mouse event? > > > > Assuming the first answer here is correct: > > > > https://stackoverflow.com/questions/21583559/nsmenu-programmatically-select-item > > > > it looks quite straightforward and clean. > > Aren't performClick and selectItemAtIndex only for popup menus, which > the system menu bar is not? I guess so. Since the macOS method doesn't work we'll need to retain the current behaviour there. The rest of the code can therefore be #if'd off as GNUstep only, perhaps with a short explanation why. Also, can you please move ns_activate_menubar to somewhere near the rest of the menu code? It should probably be above the implementation of EmacsMenu. -- Alan Third ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-23 10:18 ` Alan Third @ 2021-10-24 7:14 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-24 7:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 0 replies; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-24 7:14 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 Alan Third <alan@idiocy.org> writes: > I guess so. > > Since the macOS method doesn't work we'll need to retain the current > behaviour there. The rest of the code can therefore be #if'd off as > GNUstep only, perhaps with a short explanation why. But before I do that, I'd like to ask if the Carbon Emacs method would be applicable for macOS. Because earlier in this thread, it was mentioned that the Mac Port supports this functionality. > Also, can you please move ns_activate_menubar to somewhere near the > rest of the menu code? It should probably be above the implementation > of EmacsMenu. Thanks. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-23 10:18 ` Alan Third 2021-10-24 7:14 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-24 7:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-24 9:36 ` Alan Third 1 sibling, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-24 7:15 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 Alan Third <alan@idiocy.org> writes: > I guess so. > > Since the macOS method doesn't work we'll need to retain the current > behaviour there. The rest of the code can therefore be #if'd off as > GNUstep only, perhaps with a short explanation why. But before I do that, I'd like to ask if the Carbon Emacs method would be applicable for macOS. Because earlier in this thread, it was mentioned that the Mac Port supports this functionality. > Also, can you please move ns_activate_menubar to somewhere near the > rest of the menu code? It should probably be above the implementation > of EmacsMenu. Thanks. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-24 7:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-24 9:36 ` Alan Third 2021-10-24 9:49 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Alan Third @ 2021-10-24 9:36 UTC (permalink / raw) To: Po Lu; +Cc: Robert Pluim, sds, 19120 On Sun, Oct 24, 2021 at 03:15:15PM +0800, Po Lu wrote: > Alan Third <alan@idiocy.org> writes: > > > I guess so. > > > > Since the macOS method doesn't work we'll need to retain the current > > behaviour there. The rest of the code can therefore be #if'd off as > > GNUstep only, perhaps with a short explanation why. > > But before I do that, I'd like to ask if the Carbon Emacs method would > be applicable for macOS. Because earlier in this thread, it was > mentioned that the Mac Port supports this functionality. Probably. Unless it adds a load of dependencies on Carbon libs, which sounds unlikely. -- Alan Third ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-24 9:36 ` Alan Third @ 2021-10-24 9:49 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-25 9:08 ` Alan Third 0 siblings, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-24 9:49 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 Alan Third <alan@idiocy.org> writes: > Probably. Unless it adds a load of dependencies on Carbon libs, which > sounds unlikely. Hmm. Does the function `PostEventToQueue' need any extra linker options? Thanks in advance. ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-24 9:49 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-25 9:08 ` Alan Third 2021-10-25 11:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Alan Third @ 2021-10-25 9:08 UTC (permalink / raw) To: Po Lu; +Cc: Robert Pluim, sds, 19120 On Sun, Oct 24, 2021 at 05:49:28PM +0800, Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > Alan Third <alan@idiocy.org> writes: > > > Probably. Unless it adds a load of dependencies on Carbon libs, which > > sounds unlikely. > > Hmm. Does the function `PostEventToQueue' need any extra linker > options? I'm unsure, I can't find any documentation on it. Perhaps we'd be better sticking with NSApplication's 'postEvent:atStart:'? I don't know if it can do the same thing. -- Alan Third ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-25 9:08 ` Alan Third @ 2021-10-25 11:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-11-24 22:54 ` Alan Third 0 siblings, 1 reply; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-10-25 11:47 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 [-- Attachment #1: Type: text/plain, Size: 182 bytes --] Alan Third <alan@idiocy.org> writes: > Perhaps we'd be better sticking with NSApplication's > 'postEvent:atStart:'? I don't know if it can do the same thing. Thanks, please test. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Support-opening-the-toolkit-menu-bar-on-NS.patch --] [-- Type: text/x-patch, Size: 4523 bytes --] From 24c019196c865268a2ad3aedf5706b54b80e4e2c Mon Sep 17 00:00:00 2001 From: Po Lu <luangruo@yahoo.com> Date: Wed, 20 Oct 2021 10:54:27 +0800 Subject: [PATCH] Support opening the toolkit menu bar on NS * src/nsmenu.m (ns_activate_menubar, Fns_open_menubar): New functions. * src/nsterm.m (ns_create_terminal): Add activate_menubar_hook. * lisp/menu-bar.el (menu-bar-open): Use ns-menu-bar-open on Nextstep. --- lisp/menu-bar.el | 8 ++++--- src/nsmenu.m | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ src/nsterm.m | 1 + 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index fafc99eb95..b66f620276 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -2659,9 +2659,10 @@ menu-bar-open this is the numeric argument to the command. This function decides which method to use to access the menu depending on FRAME's terminal device. On X displays, it calls -`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; otherwise it -calls either `popup-menu' or `tmm-menubar' depending on whether -`tty-menu-open-use-tmm' is nil or not. +`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; +on NS, `ns-menu-bar-open'; otherwise it calls either `popup-menu' +or `tmm-menubar' depending on whether `tty-menu-open-use-tmm' +is nil or not. If FRAME is nil or not given, use the selected frame." (interactive @@ -2670,6 +2671,7 @@ menu-bar-open (cond ((eq type 'x) (x-menu-bar-open frame)) ((eq type 'w32) (w32-menu-bar-open frame)) + ((eq type 'ns) (ns-menu-bar-open frame)) ((and (null tty-menu-open-use-tmm) (not (zerop (or (frame-parameter nil 'menu-bar-lines) 0)))) ;; Make sure the menu bar is up to date. One situation where diff --git a/src/nsmenu.m b/src/nsmenu.m index 29201e6907..b93d3a79bd 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -439,6 +439,44 @@ ns_update_menubar (f, deep_p); } +void +ns_activate_menubar (struct frame *frame) +{ + if (frame != SELECTED_FRAME () + || !FRAME_EXTERNAL_MENU_BAR (frame)) + return; + + block_input (); + NSApplication *app = [NSApplication sharedApplication]; + NSMenu *menu = [app mainMenu]; + for (NSMenuItem *item in [menu itemArray]) + { + if ([item hasSubmenu]) + { +#ifdef NS_IMPL_GNUSTEP + [[item submenu] display]; +#else + NSWindow *window = [FRAME_NS_VIEW (frame) window]; + NSScreen *screen = [window screen]; + + NSRect screen_frame = [screen frame]; + [app postEvent: [NSEvent mouseEventWithType: NSLeftMouseDown + location: NSMakePoint (NSMinX (screen_frame), + NSMinY (screen_frame) + 10) + modifierFlags: 0 + timestamp: 0 + windowNumber: [window windowNumber] + context: [NSGraphicsContext currentContext] + eventNumber: 0 + clickCount: 1 + pressure: 1.0f] + atStart: YES]; +#endif + break; + } + } + unblock_input (); +} /* ========================================================================== @@ -1916,6 +1954,22 @@ - (Lisp_Object)runDialogAt: (NSPoint)p return popup_activated () ? Qt : Qnil; } +DEFUN ("ns-menu-bar-open", Fns_menu_bar_open, Sns_menu_bar_open, 0, 1, "i", + doc: /* Start key navigation of the menu bar in FRAME. +This initially opens the first menu bar item and you can then navigate with the +arrow keys, select a menu entry with the return key or cancel with the +escape key. If FRAME has no menu bar this function does nothing. + +If FRAME is nil or not given, use the selected frame. */) + (Lisp_Object frame) +{ + struct frame *f = decode_window_system_frame (frame); + + ns_activate_menubar (f); + + return Qnil; +} + /* ========================================================================== Lisp interface declaration @@ -1927,6 +1981,7 @@ - (Lisp_Object)runDialogAt: (NSPoint)p { defsubr (&Sns_reset_menu); defsubr (&Smenu_or_popup_active_p); + defsubr (&Sns_menu_bar_open); DEFSYM (Qdebug_on_next_call, "debug-on-next-call"); } diff --git a/src/nsterm.m b/src/nsterm.m index c10b6feca1..d9c28cb191 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5078,6 +5078,7 @@ static Lisp_Object ns_new_font (struct frame *f, Lisp_Object font_object, terminal->delete_frame_hook = ns_destroy_window; terminal->delete_terminal_hook = ns_delete_terminal; terminal->change_tab_bar_height_hook = ns_change_tab_bar_height; + terminal->activate_menubar_hook = ns_activate_menubar; /* Other hooks are NULL by default. */ return terminal; -- 2.31.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-10-25 11:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-11-24 22:54 ` Alan Third 2021-11-25 0:43 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 21+ messages in thread From: Alan Third @ 2021-11-24 22:54 UTC (permalink / raw) To: Po Lu; +Cc: Robert Pluim, sds, 19120 On Mon, Oct 25, 2021 at 07:47:42PM +0800, Po Lu wrote: > Alan Third <alan@idiocy.org> writes: > > > Perhaps we'd be better sticking with NSApplication's > > 'postEvent:atStart:'? I don't know if it can do the same thing. > > Thanks, please test. Hi, sorry for not getting back to you about this sooner. This doesn't work. I've tried messing about with it a bit to see if I can work out how to get it working, but no luck. I suspect we need to send the message to the menu "window" instead of the Emacs window, but I don't see any way to find it. -- Alan Third ^ permalink raw reply [flat|nested] 21+ messages in thread
* bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar 2021-11-24 22:54 ` Alan Third @ 2021-11-25 0:43 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 0 replies; 21+ messages in thread From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-11-25 0:43 UTC (permalink / raw) To: Alan Third; +Cc: Robert Pluim, sds, 19120 Alan Third <alan@idiocy.org> writes: > Hi, sorry for not getting back to you about this sooner. > > This doesn't work. I've tried messing about with it a bit to see if I > can work out how to get it working, but no luck. > > I suspect we need to send the message to the menu "window" instead of > the Emacs window, but I don't see any way to find it. That is disappointing. I wonder if it would be possible to use the Carbon Emacs approach wholesale. Thanks. ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2021-11-25 0:43 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-11-20 16:27 bug#19120: 25.0.50; macosx: f10 does NOT go to the menu bar Sam Steingold 2015-04-11 9:15 ` Jan D. 2015-04-12 7:29 ` Sam Steingold 2015-04-12 8:04 ` Jan D. 2015-04-14 20:41 ` Sam Steingold 2015-04-19 7:44 ` Jan D. 2021-10-20 2:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-20 9:53 ` Robert Pluim 2021-10-20 10:26 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-20 12:36 ` Robert Pluim 2021-10-20 20:47 ` Alan Third 2021-10-21 0:21 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-23 10:18 ` Alan Third 2021-10-24 7:14 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-24 7:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-24 9:36 ` Alan Third 2021-10-24 9:49 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-10-25 9:08 ` Alan Third 2021-10-25 11:47 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-11-24 22:54 ` Alan Third 2021-11-25 0:43 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.