emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: finger-pointer curser as default for mouse-face text


From: Kim F. Storm
Subject: Re: finger-pointer curser as default for mouse-face text
Date: Thu, 28 Oct 2004 16:05:00 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (gnu/linux)

[For the busy reader -- see patch to tooltip code at the end.  ++kfs]


"Drew Adams" <address@hidden> writes:

> -----Original Message-----From: Kim F. Storm
>   document the current "standard" behaviour,
>   and then add a section at an appropriate place which says something like:
>
>   Whenever you can click with mouse-2 to follow a link, you may also be
>   able to follow the link by a double click or a short click with
>   mouse-1.  The actual mouse-1 action that you need to follow a link is
>   controlled by the user option mouse-1-click-follows-link.
>
> mouse-1 click to follow links or click action buttons, if available, should
> become the _standard_ behavior. Instead of introducing mouse-2 as the
> standard behavior, and then saying that mouse-1 "may also be" usable as an
> alternative in many contexts, we should just introduce mouse-1 clicking (or
> not bother to introduce it at all! - the closer Emacs behavior is to what
> users are used to, the less explanation we need). We should not mention
> mouse-2 in this context.

Mouse-2 IS the standard behaviour -- Lisp code binds mouse-2, not mouse-1.
Changing that is a HUGE change.  In comparison, the proposed change is a
tiny change which adds a convenient mapping of mouse-1 to mouse-2 in
this specific case.


The text could be rephrased to say:

With the default settings, click mouse-1 to follow a highlighted link.

If you want to set the point rather than follow the link, just keep
the mouse-1 button pressed a little longer (at least 0.35 seconds).

This behaviour is a major change from traditional emacs mouse
behaviour where you use mouse-2 to follow links, while mouse-1
(typically) would set point in the link.

The mouse-2 binding is still the standard binding for following a
link, while the mouse-1 behaviour is customized via the variable
mouse-1-click-follows-link.  For example, you can control the length
of the click, or you can make only a mouse-1 double-click follow
links, while keeping the traditional mouse-1 behaviour.


>
> What about mouse-2? If mouse-1 clicking follows links, there is no reason
> for mouse-2 to duplicate this behavior. I think Kim has (for now) left
> mouse-2 as an alternative to mouse-1 in his patch: both do the same thing
> wrt links. I would prefer that we adopt mouse-1 and drop mouse-2 (except as
> an optional replacement for mouse-1 -- one or the other; not both). Let
> users (or future Emacs versions) use mouse-2 for something else in this
> context - by default, it should probably be `mouse-yank-at-click' in most
> contexts.

I don't think we shall do anything about mouse-2 clicks -- that's the
traditional binding, and the binding you make at the Lisp level.

>   One problem is the tooltips which say "click mouse-2 to ...".
>   To fix that requires that we change all places where the tooltips
>   are created (unless there is some place we can put in a clever
>   rewrite of the message).
>
> Such messages should ideally be constructed based on dynamic key bindings,
> so that they would automatically reflect the appropriate behavior. Isn't it
> possible to use, say, `substitute-command-keys' here?

Here is a patch to the tooltip code to change mouse-2 to mouse-1 on the fly:

*** tooltip.el  01 Sep 2003 17:45:17 +0200      1.34
--- tooltip.el  28 Oct 2004 13:31:16 +0200      
***************
*** 480,486 ****
  (defun tooltip-show-help-function (msg)
    "Function installed as `show-help-function'.
  MSG is either a help string to display, or nil to cancel the display."
!   (let ((previous-help tooltip-help-message))
      (setq tooltip-help-message msg)
      (cond ((null msg)
           ;; Cancel display.  This also cancels a delayed tip, if
--- 480,502 ----
  (defun tooltip-show-help-function (msg)
    "Function installed as `show-help-function'.
  MSG is either a help string to display, or nil to cancel the display."
!   (let ((previous-help tooltip-help-message)
!       mp pos)
!     (if (and mouse-1-click-follows-link
!            (stringp msg)
!            (save-match-data
!              (string-match "^mouse-2" msg))
!            (setq mp (mouse-pixel-position))
!            (consp (setq pos (cdr mp)))
!            (setq pos (posn-at-x-y (car pos) (cdr pos) (car mp)))
!            (windowp (posn-window pos)))
!       (with-current-buffer (window-buffer (posn-window pos))
!         (setq lttt (list msg mp pos))
!         (if (mouse-on-link-p (posn-point pos))
!             (setq msg (concat
!                   (if (eq mouse-1-click-follows-link 'double)
!                       "double-" "")
!                   "mouse-1" (substring msg 7))))))
      (setq tooltip-help-message msg)
      (cond ((null msg)
           ;; Cancel display.  This also cancels a delayed tip, if

-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]