diff options
author | Chong Yidong <cyd@gnu.org> | 2012-05-12 23:04:11 +0800 |
---|---|---|
committer | Chong Yidong <cyd@gnu.org> | 2012-05-12 23:04:11 +0800 |
commit | 0d90978655eb1fec42c817394a1da3ebd1903e1d (patch) | |
tree | 1525ff0193d0d015c7606cdfb1d1f7a70e72bfae /lisp | |
parent | ac59c2f6d19570a52481b168238749bab9038d77 (diff) | |
download | emacs-0d90978655eb1fec42c817394a1da3ebd1903e1d.tar.gz |
Fix mouse links in new Buffer Menu.
* buff-menu.el (Buffer-menu-mouse-select): Restore function.
(Buffer-menu-mode-map): Bind it.
(Buffer-menu--pretty-name): Add a mouse-face property.
Fixes: debbugs:11459
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 3 | ||||
-rw-r--r-- | lisp/buff-menu.el | 18 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b0122c9c064..26c4a492fb6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,9 @@ 2012-05-12 Chong Yidong <cyd@gnu.org> * buff-menu.el (Buffer-menu-buffer+size-width): Doc fix (Bug#11454). + (Buffer-menu-mouse-select): Restore function (Bug#11459). + (Buffer-menu-mode-map): Bind it. + (Buffer-menu--pretty-name): Add a mouse-face property. 2012-05-11 Stefan Monnier <monnier@iro.umontreal.ca> diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index cbd786bda61..0ecbba09254 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el @@ -130,6 +130,9 @@ commands.") (define-key map (kbd "M-s a C-s") 'Buffer-menu-isearch-buffers) (define-key map (kbd "M-s a M-C-s") 'Buffer-menu-isearch-buffers-regexp) + (define-key map [mouse-2] 'Buffer-menu-mouse-select) + (define-key map [follow-link] 'mouse-face) + (define-key map [menu-bar Buffer-menu-mode] (cons (purecopy "Buffer-Menu") menu-map)) (define-key menu-map [quit] `(menu-item ,(purecopy "Quit") quit-window @@ -565,6 +568,17 @@ means list those buffers and no others." (tabulated-list-print)) buffer)) +(defun Buffer-menu-mouse-select (event) + "Select the buffer whose line you click on." + (interactive "e") + (select-window (posn-window (event-end event))) + (let ((buffer (tabulated-list-get-id (posn-point (event-end event))))) + (when (buffer-live-p buffer) + (if (and (window-dedicated-p (selected-window)) + (eq (selected-window) (frame-root-window))) + (switch-to-buffer-other-frame buffer) + (switch-to-buffer buffer))))) + (defun list-buffers--refresh (&optional buffer-list old-buffer) ;; Set up `tabulated-list-format'. (let ((name-width Buffer-menu-name-width) @@ -617,7 +631,9 @@ means list those buffers and no others." (string-to-number (aref (cadr entry2) 4)))) (defun Buffer-menu--pretty-name (name) - (propertize name 'font-lock-face 'buffer-menu-buffer)) + (propertize name + 'font-lock-face 'buffer-menu-buffer + 'mouse-face 'highlight)) (defun Buffer-menu--pretty-file-name (file) (cond (file |