GNU bug report logs - #23079
25.0.92; Movement commands leave cursor in invisible line

Previous Next

Package: emacs;

Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>

Date: Mon, 21 Mar 2016 20:20:01 UTC

Severity: normal

Tags: notabug

Found in version 25.0.92

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 23079 <at> debbugs.gnu.org, jonas <at> bernoul.li
Subject: bug#23079: 25.0.92; Movement commands leave cursor in invisible line
Date: Tue, 22 Mar 2016 12:16:12 -0400
>> > Seems that works only for the invisible text property.  In Magit,
>> > they use overlays to make text invisible, and stickiness of text
>> > properties has not effect there.
>> For overlays, you need to use the insertion-type of the beg/end marker.
>> See the FRONT-ADVANCE and REAR-ADVANCE args of make-overlay.
> Hmm, that doesn't seem to work:

> (progn
>   (insert "111" "\n222\n")
>   (let ((beg (point)) end)
>     (insert "333\n444\n")
>     (setq end (point))
>     (insert "555\n666\n")
>     (overlay-put
>      (make-overlay beg end nil t t)
>      'invisible t)
>     (goto-char 1)
>     (hl-line-mode +1)))

The default "stickiness" of overlay boundaries is the inverse of that if
text-properties, for some reason.  So, this test above suffers from the
bug#19200, but other than that, it seems to work correctly for me
(i.e. it prefers putting point in front of "333" rather than in front
of "555").

And if I remove the "nil t t" args to make-overlay, then
point-adjustment correctly tries to put point in front of "555" instead
of putting it in front of "333".

At least, in my tests,


        Stefan


PS: Notice that the hl-line-highlighting is sometimes off, because it's
performed in post-command-hook, which is run *before* point-adjustment.
hl-line-mode should probably be changed to use pre-redisplay-function to
try and avoid this problem.




This bug report was last modified 4 years and 295 days ago.

Previous Next


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