> Hm, it now was surprisingly hard for me to reproduce it. Surprising > because when I wrote the bug report I was annoyed by it happening so > often. It seems to happen only when there is an active selection, > e.g. a part of the buffer marked by dragging with mouse-1. (I > normally have transient-mark-mode enabled; maybe this is related.) > Then when I press down-mouse-2, nothing happens and the menu pops up > only when the mouse button is released. After selecting the "Save > word" menu item, the menu is closed and the text from the marked > region is inserted.
Oh, I can reproduce it: The problem seems to be in the mouse-drag-region code. You have to do: - press mouse-1 somewhwere - drag to select a region - release mouse-1 - move mouse to the word with bad spelling - press mouse-2 !! the menu does not appear yet !! - release mouse-2 !! the menu now appears !! - select something in the menu (or nothing) - when you finally exit the menu with a mouse click, the menu is popped down (on the release event) and then the mouse-yank-at-click command is called Yes, I think I see the problem. It's in the dreadful mouse-show-mark function: it does (while (progn (setq event (read-event)) ... (and (memq 'down (event-modifiers event)) (not (key-binding key)) (not (mouse-undouble-last-event events)) (not (member key mouse-region-delete-keys))))) I'm not sure what this loop is intended to do or what the purpose of this mouse-show-mark function is (e.g. why it's not implemented using a one-time pre-command-hook), but the above code awry here because key-binding does not pay attention to keymaps on overlays under the mouse. So basically the loop sees the down-mouse-2, decides not to exit yet because it can't find a binding for it, then it sees the mouse-2 event which is bound, so it pushes both events back on the unread-command-events, at which point the down-mouse-2 is processed and pops up the menu and when the menu is popped the remaining mouse-2 event causes the yank. My take on it: kill mouse-show-mark. Stefan _______________________________________________ Emacs-pretest-bug mailing list Emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug