summaryrefslogtreecommitdiff
path: root/lisp/bookmark.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-03-30 21:38:43 +0000
committerRichard M. Stallman <rms@gnu.org>1997-03-30 21:38:43 +0000
commit7e510a5e2234a10e50f2c8a0b2baa702ad452332 (patch)
tree732dfb69aeb55d7c082f19e02666216248bb69c5 /lisp/bookmark.el
parent97ae4b89479b9eec8f7b020404c6435e7a752f5b (diff)
downloademacs-7e510a5e2234a10e50f2c8a0b2baa702ad452332.tar.gz
Added mouse-selection feature for bookmark list buffer.
(bookmark-bmenu-other-window-with-mouse): New function. (bookmark-bmenu-mode-map): Bind mouse-2. (bookmark-bmenu-list, bookmark-insert-location, bookmark-bmenu-hide-filenames): Put text property on bookmarks. (bookmark-bmenu-show-filenames): Remove text property from white spaces generated by `move-to-column'. (bookmark-bmenu-bookmark): Use `buffer-substring-no-properties' instead of `buffer-substring'.
Diffstat (limited to 'lisp/bookmark.el')
-rw-r--r--lisp/bookmark.el54
1 files changed, 47 insertions, 7 deletions
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 5d4b86ca388..2905447681c 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1160,7 +1160,15 @@ Optional second arg NO-HISTORY means don't record this in the
minibuffer history list `bookmark-history'."
(interactive (bookmark-completing-read "Insert bookmark location"))
(or no-history (bookmark-maybe-historicize-string bookmark))
- (insert (bookmark-location bookmark)))
+ (let ((start (point)))
+ (prog1
+ (insert (bookmark-location bookmark)) ; *Return this line*
+ (if window-system
+ (put-text-property start
+ (save-excursion (re-search-backward
+ "[^ \t]")
+ (1+ (point)))
+ 'mouse-face 'highlight)))))
;;;###autoload
(defalias 'bookmark-locate 'bookmark-insert-location)
@@ -1444,7 +1452,9 @@ explicitly."
(define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames)
(define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation)
(define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations)
- (define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation))
+ (define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation)
+ (define-key bookmark-bmenu-mode-map [mouse-2]
+ 'bookmark-bmenu-other-window-with-mouse))
@@ -1495,7 +1505,16 @@ deletion, or > if it is flagged for displaying."
(not (string-equal annotation "")))
(insert " *")
(insert " "))
- (insert (concat (bookmark-name-from-full-record full-record) "\n"))))
+ (let ((start (point)))
+ (insert (bookmark-name-from-full-record full-record))
+ (if window-system
+ (put-text-property start
+ (save-excursion (re-search-backward
+ "[^ \t]")
+ (1+ (point)))
+ 'mouse-face 'highlight))
+ (insert "\n")
+ )))
bookmark-alist))
(goto-char (point-min))
(forward-line 2)
@@ -1581,8 +1600,13 @@ Optional argument SHOW means show them unconditionally."
(let ((bmrk (bookmark-bmenu-bookmark)))
(setq bookmark-bmenu-hidden-bookmarks
(cons bmrk bookmark-bmenu-hidden-bookmarks))
- (move-to-column bookmark-bmenu-file-column t)
- (delete-region (point) (progn (end-of-line) (point)))
+ (let ((start (save-excursion (end-of-line) (point))))
+ (move-to-column bookmark-bmenu-file-column t)
+ ;; Strip off `mouse-face' from the white spaces region.
+ (if window-system
+ (remove-text-properties start (point)
+ '(mouse-face))))
+ (delete-region (point) (progn (end-of-line) (point)))
(insert " ")
;; Pass the NO-HISTORY arg:
(bookmark-insert-location bmrk t)
@@ -1608,7 +1632,14 @@ Optional argument SHOW means show them unconditionally."
(while bookmark-bmenu-hidden-bookmarks
(move-to-column bookmark-bmenu-bookmark-column t)
(bookmark-kill-line)
- (insert (car bookmark-bmenu-hidden-bookmarks))
+ (let ((start (point)))
+ (insert (car bookmark-bmenu-hidden-bookmarks))
+ (if window-system
+ (put-text-property start
+ (save-excursion (re-search-backward
+ "[^ \t]")
+ (1+ (point)))
+ 'mouse-face 'highlight)))
(setq bookmark-bmenu-hidden-bookmarks
(cdr bookmark-bmenu-hidden-bookmarks))
(forward-line 1))))))))
@@ -1648,7 +1679,7 @@ Optional argument SHOW means show them unconditionally."
(beginning-of-line)
(forward-char bookmark-bmenu-bookmark-column)
(prog1
- (buffer-substring (point)
+ (buffer-substring-no-properties (point)
(progn
(end-of-line)
(point)))
@@ -1826,6 +1857,15 @@ The current window remains selected."
(set-buffer o-buffer))
(bookmark-show-annotation bookmark)))))
+(defun bookmark-bmenu-other-window-with-mouse (event)
+ "Select bookmark at the mouse pointer in other window, leaving bookmark menu visible."
+ (interactive "e")
+ (save-excursion
+ (set-buffer (window-buffer (posn-window (event-end event))))
+ (save-excursion
+ (goto-char (posn-point (event-end event)))
+ (bookmark-bmenu-other-window))))
+
(defun bookmark-bmenu-show-annotation ()
"Show the annotation for the current bookmark in another window."