From: Kim F. Storm Date: Fri, 17 Dec 2004 15:19:33 +0000 (+0000) Subject: Implement context-sentitive dual behaviour for mouse-1 click. X-Git-Tag: ttn-vms-21-2-B4~3212 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c44edf72cd01cb86d5527a9ba09860459aeba1e5;p=emacs.git Implement context-sentitive dual behaviour for mouse-1 click. --- diff --git a/etc/NEWS b/etc/NEWS index 21895dd1d63..1ac6aba6de5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -98,6 +98,35 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. * Changes in Emacs 21.4 +** You can now follow links by clicking mouse-1 on the link. + +Traditionally, Emacs uses a mouse-1 click to set point and a mouse-2 +click to follow a link, whereas most other applications use a mouse-1 +click for both purposes, depending on whether you click outside or +inside a link. With release 21.4, the behaviour of a mouse-1 click +has been changed to match this context-sentitive dual behaviour. + +Depending on the current mode, a mouse-2 click in Emacs may do much +more than just follow a link, so the new mouse-1 behaviour is only +activated for modes which explicitly mark a clickable text as a "link" +(see the new function `mouse-on-link-p' for details). The lisp +packages that are included in release 21.4 have been adapted to do +this, but external packages may not yet support this. However, there +is no risk in using such packages, as the worst thing that could +happen is that you get the original mouse-1 behaviour when you click +on a link, which typically means that you set point where you click. + +If you want to get the original mouse-1 action also inside a link, you +just need to press the mouse-1 button a little longer than a normal +click (i.e. press and hold the mouse-1 button for half a second before +you release it). + +Dragging the mouse-1 inside a link still performs the original +drag-mouse-1 action, typically copy the text. + +You can customize the new mouse-1 behaviour via the new user option +`mouse-1-click-follows-link'. + ** line-move-ignore-invisible now defaults to t. ** In Outline mode, hide-body no longer hides lines at the top @@ -2372,6 +2401,10 @@ configuration files. * Lisp Changes in Emacs 21.4 +** Lisp code can now test if a given buffer position is inside a +clickable link with the new function `mouse-on-link-p'. This is the +function used by the new `mouse-1-click-follows-link' functionality. + ** (while-no-input BODY...) runs BODY, but only so long as no input arrives. If the user types or clicks anything, BODY stops as if a quit had occurred. while-no-input returns the value of BODY, if BODY diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7e19ddff5d7..e973b48e814 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,41 @@ +2004-12-17 Kim F. Storm + + * mouse.el (mouse-1-click-follows-link): New defcustom. + (mouse-on-link-p): New function. + (mouse-drag-region-1): Implement mouse-1-click-follows-link + functionality. Map a mouse-1 click event into a mouse-2 (or + other) event when position is inside a link. + + * tooltip.el (tooltip-show-help-function): Replace "mouse-2" + prefix in tooltip text with "mouse-1" when this is a link + recognized by mouse-1-click-follows-link functionality. + + * help.el (describe-key): Report effective and original binding + for mouse-1 when clicked on a link. + (describe-mode): Add follow-link property to "minor-mode" button. + + * help-fns.el (describe-variable): Add follow-link property to + "below" button. + + * help-mode.el (help-xref): Add follow-link property. + + * apropos.el (apropos-symbol, apropos-function, apropos-macro) + (apropos-command, apropos-variable, apropos-face, apropos-group) + (apropos-widget, apropos-plist): Add follow-link property. + + * pcvs-defs.el (cvs-mode-map): Map follow-link to a function which + checks if position is in a filename, rather than some other + clickable item. Function looks for cvs-filename-face at position. + + * wid-edit.el (widget-specify-field, widget-specify-button): + Map a :follow-link keyword into a follow-link property. + (link): Add :follow-link keyword, map to RET binding. + + * dired.el (dired-mode-map): Map follow-link to mouse-face. + + * progmodes/compile.el (compilation-minor-mode-map) + (compilation-button-map, compilation-mode-map): Likewise. + 2004-12-17 Thien-Thi Nguyen * play/zone.el (zone): Init `line-spacing' from orig buffer. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 518a9903085..bb7b8337f4c 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,9 @@ +2004-12-17 Kim F. Storm + + * gnus-group.el (gnus-group-mode-map): Map follow-link to mouse-face. + + * gnus-sum.el (gnus-summary-mode-map): Likewise. + 2004-12-08 Stefan Monnier * gnus-art.el (gnus-narrow-to-page): Don't hardcode point-min. @@ -905,7 +911,7 @@ * gnus-delay.el (gnus-delay-default-hour): Add :version. * gnus-cite.el (gnus-cite-blank-line-after-header) - (gnus-article-boring-faces): + (gnus-article-boring-faces): * gnus-art.el (gnus-buttonized-mime-types) (gnus-inhibit-mime-unbuttonizing)