changeset 62130:109432f1fa94

(goto-address-fontify): Make sure the overlays evaporate if their text is deleted. (goto-address-at-point): Make it work as a mouse binding as well. (goto-address-at-mouse): Obsolete it. Update users.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 06 May 2005 21:24:09 +0000
parents c86c86ce57a3
children ae455ff58429
files lisp/net/goto-addr.el
diffstat 1 files changed, 12 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/net/goto-addr.el	Fri May 06 20:56:52 2005 +0000
+++ b/lisp/net/goto-addr.el	Fri May 06 21:24:09 2005 +0000
@@ -1,6 +1,6 @@
 ;;; goto-addr.el --- click to browse URL or to send to e-mail address
 
-;; Copyright (C) 1995, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2000, 2001, 2005  Free Software Foundation, Inc.
 
 ;; Author: Eric Ding <ericding@alum.mit.edu>
 ;; Maintainer: FSF
@@ -46,7 +46,7 @@
 ;;
 ;; (setq goto-address-highlight-keymap
 ;;   (let ((m (make-sparse-keymap)))
-;;     (define-key m [S-mouse-2] 'goto-address-at-mouse)
+;;     (define-key m [S-mouse-2] 'goto-address-at-point)
 ;;     m))
 ;;
 
@@ -118,9 +118,8 @@
 
 (defvar goto-address-highlight-keymap
   (let ((m (make-sparse-keymap)))
-    (if (featurep 'xemacs)
-	(define-key m (kbd "<button2>") 'goto-address-at-mouse)
-      (define-key m (kbd "<mouse-2>") 'goto-address-at-mouse))
+    (define-key m (if (featurep 'xemacs) (kbd "<button2>") (kbd "<mouse-2>"))
+      'goto-address-at-point))
     (define-key m (kbd "C-c RET") 'goto-address-at-point)
     m)
   "keymap to hold goto-addr's mouse key defs under highlighted URLs.")
@@ -165,6 +164,7 @@
                      (this-overlay (make-overlay s e)))
 		(and goto-address-fontify-p
                      (overlay-put this-overlay 'face goto-address-url-face))
+                (overlay-put this-overlay 'evaporate t)
 		(overlay-put this-overlay
                              'mouse-face goto-address-url-mouse-face)
 		(overlay-put this-overlay
@@ -179,6 +179,7 @@
                      (this-overlay (make-overlay s e)))
 		(and goto-address-fontify-p
                      (overlay-put this-overlay 'face goto-address-mail-face))
+                (overlay-put this-overlay 'evaporate t)
                 (overlay-put this-overlay 'mouse-face
                              goto-address-mail-mouse-face)
 		(overlay-put this-overlay
@@ -191,24 +192,18 @@
 ;; snarfed from browse-url.el
 
 ;;;###autoload
-(defun goto-address-at-mouse (event)
-  "Send to the e-mail address or load the URL clicked with the mouse.
-Send mail to address at position of mouse click.  See documentation for
-`goto-address-find-address-at-point'.  If no address is found
-there, then load the URL at or before the position of the mouse click."
-  (interactive "e")
-  (save-excursion
-    (mouse-set-point event)
-    (goto-address-at-point)))
+(define-obsolete-function-alias
+  'goto-address-at-mouse 'goto-address-at-point "22.1")
 
 ;;;###autoload
-(defun goto-address-at-point ()
+(defun goto-address-at-point (&optional event)
   "Send to the e-mail address or load the URL at point.
 Send mail to address at point.  See documentation for
 `goto-address-find-address-at-point'.  If no address is found
 there, then load the URL at or before point."
-  (interactive)
+  (interactive (list last-input-event))
   (save-excursion
+    (if event (mouse-set-point event))
     (let ((address (save-excursion (goto-address-find-address-at-point))))
       (if (and address
 	       (save-excursion
@@ -248,5 +243,5 @@
 
 (provide 'goto-addr)
 
-;;; arch-tag: ca47c505-5661-425d-a471-62bc6e75cf0a
+;; arch-tag: ca47c505-5661-425d-a471-62bc6e75cf0a
 ;;; goto-addr.el ends here