diff options
author | Colin Walters <walters@gnu.org> | 2002-07-25 06:25:51 +0000 |
---|---|---|
committer | Colin Walters <walters@gnu.org> | 2002-07-25 06:25:51 +0000 |
commit | 51922c041c2a91cec1764e07c1513efb4baf4610 (patch) | |
tree | e05fa4c1b16e3037ff70b8c7315d189de949e9ac /lisp/ibuffer.el | |
parent | ec797e5e59f2a3cbca9bff625930b8e07f9a5c60 (diff) | |
download | emacs-51922c041c2a91cec1764e07c1513efb4baf4610.tar.gz |
(ibuffer-mouse-popup-menu): Allow point to be moved by menu functions.
Diffstat (limited to 'lisp/ibuffer.el')
-rw-r--r-- | lisp/ibuffer.el | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index c622606f31d..058a85ce82d 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el @@ -861,26 +861,23 @@ width and the longest string in LIST." (defun ibuffer-mouse-popup-menu (event) "Display a menu of operations." (interactive "e") - (let ((origline (count-lines (point-min) (point)))) + (let ((eventpt (save-excursion + (mouse-set-point event) + (point)))) (unwind-protect - (progn - (mouse-set-point event) - (if (get-text-property (point) 'ibuffer-filter-group-name) - (save-excursion - (popup-menu ibuffer-mode-groups-popup)) - (setq buffer-read-only nil) + (if (get-text-property eventpt 'ibuffer-filter-group-name) + (popup-menu ibuffer-mode-groups-popup) + (let ((inhibit-read-only t)) (ibuffer-save-marks - ;; hm. we could probably do this in a better fashion - (ibuffer-unmark-all ?\r) - (setq buffer-read-only nil) - (ibuffer-set-mark ibuffer-marked-char) - (setq buffer-read-only nil) - (save-excursion - (popup-menu ibuffer-mode-operate-map))))) - (progn - (setq buffer-read-only t) - (goto-line (1+ origline)))))) - + ;; hm. we could probably do this in a better fashion + (ibuffer-unmark-all ?\r) + (save-excursion + (goto-char eventpt) + (ibuffer-set-mark ibuffer-marked-char)) + (save-excursion + (popup-menu ibuffer-mode-operate-map))))) + (setq buffer-read-only t)))) + (defun ibuffer-skip-properties (props direction) (while (and (not (eobp)) (let ((hit nil)) |