[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: mouse-1-click-follows-link doesn'tgovern behavior in
Re: address@hidden: mouse-1-click-follows-link doesn'tgovern behavior in Customize]
Sun, 05 Nov 2006 13:05:03 -0500
Gnus/5.11 (Gnus v5.11) Emacs/22.0.90 (gnu/linux)
Richard Stallman <address@hidden> writes:
> OTOH, it is not straightforward to implement the
> mouse-1-click-follows-link behavior for widgets, including link
> widgets: in particular, the part where holding the button down for a
> certain time causes point to move.
> C-h v read-quoted-char-radix RET generates a buffer with a link.
> It obeys mouse-1-click-follows-link.
> M-x customize-option RET read-quoted-char-radix RET creates a buffer
> with a widget that looks just the same. But it doesn't act the same.
> This is very bad UI design.
> Could we change cus-edit.el to make a link instead of a widget?
> But changing widget-documentation-link-add, say?
At the Lisp level, the custom-group-link widgets behave rather
differently from ordinary links used in, e.g., the *Help* buffer.
There's a lot amount of code in cus-edit.el that specifies an :action
for the custom-group-link widget when the widget is defined. The
minimum required change is to (i) make these callers specify some
other widget property, say :link-action; (ii) somehow modify the
custom-group-link so that it is inserted along with text properties
that specify a mouse-2 local binding plus a `follow-link' property,
which automagically calls the :link-action of the widget. It's a
pretty big project.
Recall that the link widgets were changed to look like links during
the Emacs 22 release process; previously they looked like buttons.
The change was made because they are conceptually links rather than
buttons, and people don't expect links to look like buttons.
I think the amount of inconsistency involved is negligible enough that
we can postphone it for after the release.
One compromise is to change the :pressed-face widget property of
custom-group-link widgets. That way, they will change color when the
user holds down the mouse button, which is a visual cue that they
behave differently from other Emacs links.