diff lisp/modes/imenu.el @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents 0293115a14e9
children 6a378aca36af
line wrap: on
line diff
--- a/lisp/modes/imenu.el	Mon Aug 13 09:00:04 2007 +0200
+++ b/lisp/modes/imenu.el	Mon Aug 13 09:02:59 2007 +0200
@@ -713,20 +713,7 @@
 				       (if (< 1 (length (cdr menu)))
 					   (cdr menu)
 					 (cdr (cadr menu)))))
-    (if (fboundp 'x-popup-menu)
-	(setq position (x-popup-menu event menu))
-      (setq position (let ((val (get-popup-menu-response
-				 (cons ""
-				       (mapcar
-					(function
-					 (lambda (x)
-					   (vector (car x) (list (car x)) t)))
-					menu)))))
-		       (setq val (and val
-				      (listp (event-object val))
-				      (stringp (car-safe (event-object val)))
-				      (car (event-object val))))
-		       (cdr (assoc val choices)))))
+    (setq position (x-popup-menu event menu))
     (cond ((and (listp position)
 		(numberp (car position))
 		(stringp (nth (1- (length position)) position)))
@@ -771,26 +758,21 @@
 
 The returned value is on the form (INDEX-NAME . INDEX-POSITION)."
   (let (index-alist
-	;; XEmacs
-	(mouse-triggered (or (button-press-event-p last-command-event)
-			     (button-release-event-p last-command-event)
-			     (menu-event-p last-command-event)))
-	;;(mouse-triggered (listp last-nonmenu-event))
+	(mouse-triggered (listp last-nonmenu-event))
 	(result t) )
     ;; If selected by mouse, see to that the window where the mouse is
     ;; really is selected.
-    ;(and mouse-triggered
-	 ;(not (equal last-nonmenu-event '(menu-bar)))
-	 ;(let ((window (posn-window (event-start last-nonmenu-event))))
-	   ;(or (framep window) (null window) (select-window window))))
+    (and mouse-triggered
+	 (not (equal last-nonmenu-event '(menu-bar)))
+	 (let ((window (posn-window (event-start last-nonmenu-event))))
+	   (or (framep window) (null window) (select-window window))))
     ;; Create a list for this buffer only when needed.
     (while (eq result t)
       (setq index-alist (if alist alist (imenu--make-index-alist)))
       (setq result
 	    (if (and mouse-triggered
 		     (not imenu-always-use-completion-buffer-p))
-		;(imenu--mouse-menu index-alist last-nonmenu-event)
-		(imenu--mouse-menu index-alist last-command-event)
+		(imenu--mouse-menu index-alist last-nonmenu-event)
 	      (imenu--completion-buffer index-alist prompt)))
       (and (eq result t)
 	   (imenu--cleanup)
@@ -805,13 +787,12 @@
   (interactive "sImenu menu item name: ")
   (let ((newmap (make-sparse-keymap))
 	(menu-bar (lookup-key (current-local-map) [menu-bar])))
-    (when menu-bar
-      (define-key newmap [menu-bar]
-	(append (make-sparse-keymap) menu-bar))
-      (define-key newmap [menu-bar index]
-	(cons name (nconc (make-sparse-keymap "Imenu")
-			  (make-sparse-keymap))))
-      (use-local-map (append newmap (current-local-map)))))
+    (define-key newmap [menu-bar]
+      (append (make-sparse-keymap) menu-bar))
+    (define-key newmap [menu-bar index]
+      (cons name (nconc (make-sparse-keymap "Imenu")
+			(make-sparse-keymap))))
+    (use-local-map (append newmap (current-local-map))))
   (add-hook 'menu-bar-update-hook 'imenu-update-menubar))
 
 (defvar imenu-buffer-menubar nil)