From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#36550: mouse-face overlay calculation error Date: Sat, 13 Jul 2019 16:23:09 +0300 Message-ID: <834l3q132a.fsf@gnu.org> References: <87v9wc2t8p.fsf@mouse.gnus.org> <831ryu31fc.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="40026"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36550@debbugs.gnu.org, linus.kallberg@outlook.com To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jul 13 15:24:10 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hmI0Y-000AEV-Hq for geb-bug-gnu-emacs@m.gmane.org; Sat, 13 Jul 2019 15:24:10 +0200 Original-Received: from localhost ([::1]:55356 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hmI0X-000885-Io for geb-bug-gnu-emacs@m.gmane.org; Sat, 13 Jul 2019 09:24:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51372) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hmI0U-00087w-P2 for bug-gnu-emacs@gnu.org; Sat, 13 Jul 2019 09:24:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hmI0R-0006dF-L6 for bug-gnu-emacs@gnu.org; Sat, 13 Jul 2019 09:24:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:32792) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hmI0Q-0006cD-4k for bug-gnu-emacs@gnu.org; Sat, 13 Jul 2019 09:24:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hmI0P-0002TD-UA for bug-gnu-emacs@gnu.org; Sat, 13 Jul 2019 09:24:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Jul 2019 13:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36550 X-GNU-PR-Package: emacs Original-Received: via spool by 36550-submit@debbugs.gnu.org id=B36550.15630242099451 (code B ref 36550); Sat, 13 Jul 2019 13:24:01 +0000 Original-Received: (at 36550) by debbugs.gnu.org; 13 Jul 2019 13:23:29 +0000 Original-Received: from localhost ([127.0.0.1]:41613 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmHzs-0002SN-M6 for submit@debbugs.gnu.org; Sat, 13 Jul 2019 09:23:28 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:38883) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hmHzr-0002SA-0w for 36550@debbugs.gnu.org; Sat, 13 Jul 2019 09:23:27 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:33610) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hmHzk-0006Je-Dk; Sat, 13 Jul 2019 09:23:21 -0400 Original-Received: from [176.228.60.248] (port=1398 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hmHzj-0002bJ-SD; Sat, 13 Jul 2019 09:23:20 -0400 In-reply-to: (message from Lars Ingebrigtsen on Sat, 13 Jul 2019 15:10:05 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:162875 Archived-At: > From: Lars Ingebrigtsen > Cc: 36550@debbugs.gnu.org, linus.kallberg@outlook.com > Date: Sat, 13 Jul 2019 15:10:05 +0200 > > Eli Zaretskii writes: > > > Mouse-face isn't supposed to cover newlines, I think. Why do you need > > that? > > Because Widget wants to have the mouse-face extend to the end of the > line, I think... I don't understand why Widget would want to do that. As I explained, it makes no sense to highlight parts of display that have no text with a face that shows mouse-sensitive text. When the next line's characters are also sensitive, then yes, we do highlight all the way to the newline. > > The "one character shorter" variant does what it's expected to do, > > because mouse-face is not extended to EOL as with other faces. > > Mouse-face is for showing the parts of text that are mouse-sensitive, > > so it makes no sense to highlight portions of display that have no > > text. > > OK, if this is how mouse-face is supposed to work, then the fix in > wid-edit.el should be pretty trivial -- I'll just have it not put the > overlay on the newline? Yes, I think so. > > It's in the display code, and is quite complicated due to > > bidirectional text use case. See mouse_face_from_buffer_pos and its > > subroutine rows_from_pos_range. > > Oh, wow; that's a daunting function indeed... Yes. The problem it tries to solve is to highlight correctly when buffer positions do not increment monotonously with screen coordinates. Unsurprisingly, at the time it took me some time to get that code right.