# HG changeset patch # User John Paul Wallington # Date 1035865263 0 # Node ID 7dab1d891656f3b879e949a197e171118a706811 # Parent 7ba2f62fefd3098d7cbedb1b5bf5130aa915ac7b (ibuffer-mouse-popup-menu): Set point before popping up filter groups menu. Preserve point unless a menu command has moved it from point clicked. diff -r 7ba2f62fefd3 -r 7dab1d891656 lisp/ibuffer.el --- a/lisp/ibuffer.el Tue Oct 29 01:39:26 2002 +0000 +++ b/lisp/ibuffer.el Tue Oct 29 04:21:03 2002 +0000 @@ -869,12 +869,13 @@ (defun ibuffer-mouse-popup-menu (event) "Display a menu of operations." (interactive "e") - (let ((eventpt (save-excursion - (mouse-set-point event) - (point)))) + (let ((eventpt (posn-point (event-end event))) + (origpt (point))) (unwind-protect (if (get-text-property eventpt 'ibuffer-filter-group-name) - (popup-menu ibuffer-mode-groups-popup) + (progn + (goto-char eventpt) + (popup-menu ibuffer-mode-groups-popup)) (let ((inhibit-read-only t)) (ibuffer-save-marks ;; hm. we could probably do this in a better fashion @@ -884,7 +885,9 @@ (ibuffer-set-mark ibuffer-marked-char)) (save-excursion (popup-menu ibuffer-mode-operate-map))))) - (setq buffer-read-only t)))) + (setq buffer-read-only t) + (if (eq eventpt (point)) + (goto-char origpt))))) (defun ibuffer-skip-properties (props direction) (while (and (not (eobp))