Commit c44edf72 authored by Kim F. Storm's avatar Kim F. Storm

Implement context-sentitive dual behaviour for mouse-1 click.

parent 0ac804df
......@@ -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
** 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
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.
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-art.el (gnus-buttonized-mime-types)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment