# HG changeset patch # User Dave Love # Date 969982479 0 # Node ID 83fe15f82f7e547a1c4e7607716b3888c4f09dae # Parent 8354221b2cedffd97c556771a88e3892a1911cd4 (popup-menu): If POSITION is nil, set it using mouse-position. diff -r 8354221b2ced -r 83fe15f82f7e lisp/mouse.el --- a/lisp/mouse.el Tue Sep 26 15:32:27 2000 +0000 +++ b/lisp/mouse.el Tue Sep 26 15:34:39 2000 +0000 @@ -59,12 +59,15 @@ (plist-get (get map 'menu-pro) :filter)))) (if filter (funcall filter (symbol-function map)) map))))) event) + (unless position + (let ((mp (mouse-position))) + (setq position (list (list (cadr mp) (cddr mp)) (car mp))))) ;; The looping behavior was taken from lmenu's popup-menu-popup (while (and map (setq event ;; map could be a prefix key, in which case ;; we need to get its function cell ;; definition. - (x-popup-menu position (indirect-function map)))) + (x-popup-menu (or position (mouse-position)) (indirect-function map)))) ;; Strangely x-popup-menu returns a list. ;; mouse-major-mode-menu was using a weird: ;; (key-binding (apply 'vector (append '(menu-bar) menu-prefix events)))