unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@linkov.net>
To: Philip Kaludercic <philipk@posteo.net>
Cc: 50552@debbugs.gnu.org
Subject: bug#50552: 28.0.50; Add context-menu-occur
Date: Sat, 02 Oct 2021 22:25:10 +0300	[thread overview]
Message-ID: <87sfxjgrj5.fsf@mail.linkov.net> (raw)
In-Reply-To: <87wnmwk8vh.fsf@posteo.net> (Philip Kaludercic's message of "Fri,  01 Oct 2021 16:28:02 +0000")

>>> The reasoning was the following: by default, dictionary.el is not loaded,
>>> so its context menu item is not used.  But when the user wants to use
>>> dictionary.el and explicitly loads it, then automatically provide also
>>> its context menu item.
>>
>> On this topic, I am not sure how good it is to do this
>> automatically. One effect seems to be that context-menu-dictionary
>> inserts itself at an unintended place in the menu (in my case as the
>> first item, even though I'd prefer it to be further down).
>
> It turns out the issue here is that context-menu-dictionary uses
> define-key instead of define-key-after. Here is a patch to fix it:

To make the context menus in Emacs more in line with other apps
the design principles were the following:

1. When a context function can detect context with 100% reliability
   that usually achieved by using e.g. text properties on short stretches
   of the buffer like links in eww and Info manuals, or file names in Dired,
   then corresponding menu items are placed at the top of the context menus,
   like link-related items are placed first in web browsers, e.g. "Open link",
   "Save link", etc.

2. After such items comes Undo/Redo and the region-related submenu.

3. When the context around the mouse click is not 100% bound to the action,
   then it's placed further down from the above items.  So such items as
   "Look up in Manual" and "Find Definition" are placed below since
   they are activated on every word in the buffer, even on such words
   that are not valid program symbols.

4. The last items (major/minor mode menus) replicate the order of items
   from the menu-bar.

So according to this design, you are right that context-menu-dictionary
should be more below.  And it should be placed to the position 3
that has the special marker named 'middle-separator'.  Now fixed, thanks
for the suggestion.





      reply	other threads:[~2021-10-02 19:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-12 16:54 bug#50552: 28.0.50; Add context-menu-occur Philip Kaludercic
2021-09-12 17:59 ` Juri Linkov
2021-09-12 19:09   ` Philip Kaludercic
2021-09-13  8:28     ` Juri Linkov
2021-09-14 20:45       ` Philip Kaludercic
2021-09-15  7:14         ` Juri Linkov
2021-09-28 20:00       ` Philip Kaludercic
2021-09-29  7:19         ` Juri Linkov
2021-09-29 10:00           ` Philip Kaludercic
2021-09-29 17:31             ` Juri Linkov
2021-10-02 19:29               ` Juri Linkov
2021-10-01 16:28         ` Philip Kaludercic
2021-10-02 19:25           ` Juri Linkov [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sfxjgrj5.fsf@mail.linkov.net \
    --to=juri@linkov.net \
    --cc=50552@debbugs.gnu.org \
    --cc=philipk@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).