emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/easymenu.el


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/easymenu.el
Date: Tue, 02 Jul 2002 14:49:03 -0400

Index: emacs/lisp/emacs-lisp/easymenu.el
diff -c emacs/lisp/emacs-lisp/easymenu.el:1.50 
emacs/lisp/emacs-lisp/easymenu.el:1.51
*** emacs/lisp/emacs-lisp/easymenu.el:1.50      Wed May 15 18:14:16 2002
--- emacs/lisp/emacs-lisp/easymenu.el   Tue Jul  2 14:49:03 2002
***************
*** 616,621 ****
--- 616,635 ----
    (or (keymapp map) (error "Malformed menu in easy-menu: (%s)" map))
    map)
  
+ (defun easy-menu-popup-menu (menu &optional event)
+   "Pop up a menu and run a command according to user's selection.
+ MENU is a menu description as in `easy-menu-define'.
+ EVENT is a mouse button event and determines where to pop up the menu.
+ If EVENT is nil, pop up menu at the current mouse position."
+   (let ((map (easy-menu-create-menu (car menu) (cdr menu))))
+     (if (symbolp map)
+       (let ((f (memq :filter (get map 'menu-prop))))
+         (setq map (symbol-function map))
+         (if f (setq map (funcall (cadr f) map)))))
+     (let* ((sel (x-popup-menu (or event t) map))
+          (f (if (consp sel) (lookup-key map (apply 'vector sel)))))
+       (if (commandp f) (call-interactively f)))))
+ 
  (provide 'easymenu)
  
  ;;; easymenu.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]