GNU bug report logs - #4911
mouse-face property should merge face attributes, not replace

Previous Next

Package: emacs;

Reported by: Dave Aspinall <daveaspin <at> googlemail.com>

Date: Thu, 12 Nov 2009 12:55:04 UTC

Severity: wishlist

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: 4911 <at> debbugs.gnu.org
Subject: bug#4911: mouse-face property should merge face attributes, not replace
Date: Fri, 10 Apr 2020 12:26:12 -0400
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
>> I see no reason to change that now.  The use case described in the bug
>> report could be handled by using some non-color attribute for the
>> mouse-face, for example.
> 
> Seems like everybody agrees, so I'm closing this bug report.

I'd like to disagree :) This is a problem I've run into in various packages and as a user, and the workaround doesn't work when there are multiple different faces applied to the text of a link.

As a concrete example, consider compilation-mode, which uses different colors for the file name, the line number, the column number, and the error message.  Currently, when hovering over a compilation-mode line highlights it, but also causes it to lose all of its other highlighting.

Setting different mouse-face properties to match the different faces would cause the mouse-face highlighting to be only applied to part of the line.

Of course, one way to go is to handle mouse-in and mouse-out events in Lisp, creating and removing overlays as needed.  But that's explicitly recommended against in the ELisp manual, and it's a lot of work for not much gain.

It would be great to have an option for this; maybe as an extra text property, like 'mouse-face-merge?  Or maybe as a user option?
Of course, if the default changed to merging, recovering the current behavior would be easy even without an extra property (it would just be a matter of making the mouse-face inherit from 'default), I think.  But even without changing the default it would be nice to introduce a way to achieve that behavior.

Clément.




This bug report was last modified 5 years and 14 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.