summaryrefslogtreecommitdiff
path: root/lisp/ibuffer.el
diff options
context:
space:
mode:
authorColin Walters <walters@gnu.org>2002-07-25 06:25:51 +0000
committerColin Walters <walters@gnu.org>2002-07-25 06:25:51 +0000
commit51922c041c2a91cec1764e07c1513efb4baf4610 (patch)
treee05fa4c1b16e3037ff70b8c7315d189de949e9ac /lisp/ibuffer.el
parentec797e5e59f2a3cbca9bff625930b8e07f9a5c60 (diff)
downloademacs-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.el33
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))