emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* 26.3; org-indent-mode's line-prefix text property flickers near overlays
@ 2020-05-28 19:54 Kévin Le Gouguec
  2020-05-29  7:12 ` bug#41584: " Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Kévin Le Gouguec @ 2020-05-28 19:54 UTC (permalink / raw)
  To: bug-gnu-emacs; +Cc: emacs-orgmode, Dmitry Gutov

Hello,

The line-prefix text property set by org-indent-mode sometimes vanishes
when typing near a line where an overlay is applied.  To reproduce:

- emacs -Q
- C-x C-f repro.org
- M-x org-indent-mode
- M-: (insert "* heading\ntext")
- M-:
(let ((ov (make-overlay (point-at-bol) (point-at-bol)))
      (val (propertize " " 'display '((left-fringe right-triangle)))))
  (overlay-put ov 'before-string val))
- RET
- a

When "a" is inserted, org-indent-mode's line-prefix disappears on the
*previous* line ("text").  It remains gone as long as I type
self-inserting characters, until

- I type certain commands, e.g. RET or C-j, or

- I insert a closing delimiter that makes
  blink-paren-post-self-insert-function blink the corresponding opening
  delimiter, e.g. ')' or ']'.

Then the line-prefix shows up again.


This recipe is simplified; I originally found this bug in Org files
under version control with diff-hl-flydiff-mode enabled.  When typing in
new content, the preceding line is shoved to the left until I stop
typing; after diff-hl-flydiff-delay, diff-hl's idle timer kicks in and
updates its overlay, which as a side-effect makes org-indent-mode's
line-prefix come back up.

See [1] for my original bug report to diff-hl and some crude
"analysis".


I'm clearly out of my depth; at least I hope I used the correct terms to
describe the symptoms I've observed.  Let me know if there is anything I
can do to help debug this.

Thank you for your time.


[1] https://github.com/dgutov/diff-hl/issues/142


In GNU Emacs 28.0.50 (build 21, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0)
 of 2020-05-18 built on my-little-tumbleweed
Repository revision: b1fe27d77db8f819641231ca46725f3eed0b4d9b
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-xwidgets --with-cairo'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS JSON
PDUMPER LCMS2 GMP

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-28 19:54 26.3; org-indent-mode's line-prefix text property flickers near overlays Kévin Le Gouguec
@ 2020-05-29  7:12 ` Eli Zaretskii
  2020-05-29 14:03   ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2020-05-29  7:12 UTC (permalink / raw)
  To: Kévin Le Gouguec; +Cc: 41584, emacs-orgmode, dgutov

> From: Kévin Le Gouguec <kevin.legouguec@gmail.com>
> Date: Thu, 28 May 2020 21:54:09 +0200
> Cc: emacs-orgmode@gnu.org, Dmitry Gutov <dgutov@yandex.ru>
> 
> - emacs -Q
> - C-x C-f repro.org
> - M-x org-indent-mode
> - M-: (insert "* heading\ntext")
> - M-:
> (let ((ov (make-overlay (point-at-bol) (point-at-bol)))
>       (val (propertize " " 'display '((left-fringe right-triangle)))))
>   (overlay-put ov 'before-string val))
> - RET
> - a
> 
> When "a" is inserted, org-indent-mode's line-prefix disappears on the
> *previous* line ("text").  It remains gone as long as I type
> self-inserting characters, until
> 
> - I type certain commands, e.g. RET or C-j, or
> 
> - I insert a closing delimiter that makes
>   blink-paren-post-self-insert-function blink the corresponding opening
>   delimiter, e.g. ')' or ']'.
> 
> Then the line-prefix shows up again.

In fact, it's enough to type "M-x".  Which is a clear sign that some
redisplay optimization kicks in where it shouldn't.  And indeed,
setting inhibit-try-window-id non-nil solves the problem.

I will look into this when I have time, thanks for an easy reproducer.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-29  7:12 ` bug#41584: " Eli Zaretskii
@ 2020-05-29 14:03   ` Eli Zaretskii
  2020-05-29 18:11     ` Kévin Le Gouguec
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2020-05-29 14:03 UTC (permalink / raw)
  To: kevin.legouguec; +Cc: 41584, dgutov

> Date: Fri, 29 May 2020 10:12:27 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 41584@debbugs.gnu.org, dgutov@yandex.ru
> 
> In fact, it's enough to type "M-x".  Which is a clear sign that some
> redisplay optimization kicks in where it shouldn't.  And indeed,
> setting inhibit-try-window-id non-nil solves the problem.
> 
> I will look into this when I have time, thanks for an easy reproducer.

Should be fixed now on the master branch.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-29 14:03   ` Eli Zaretskii
@ 2020-05-29 18:11     ` Kévin Le Gouguec
  2020-05-29 20:03       ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Kévin Le Gouguec @ 2020-05-29 18:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 41584, dgutov

Eli Zaretskii <eliz@gnu.org> writes:

> Should be fixed now on the master branch.

Thanks a lot!

I'm sorry I didn't notice it earlier, but I may have found another mole
for you to whack; starting with the same recipe:

> - emacs -Q
> - C-x C-f repro.org
> - M-x org-indent-mode
> - M-: (insert "* heading\ntext")
> - M-:
> (let ((ov (make-overlay (point-at-bol) (point-at-bol)))
>       (val (propertize " " 'display '((left-fringe right-triangle)))))
>   (overlay-put ov 'before-string val))

This time, instead of hitting RET, insert a pair of parentheses, and
wait blink-matching-delay seconds until the opening parenthesis stops
being highlighted.  Before and after your fix, the line-prefix
disappears until I enter another command.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-29 18:11     ` Kévin Le Gouguec
@ 2020-05-29 20:03       ` Eli Zaretskii
  2020-05-29 20:32         ` Kévin Le Gouguec
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2020-05-29 20:03 UTC (permalink / raw)
  To: Kévin Le Gouguec; +Cc: 41584, dgutov

> From: Kévin Le Gouguec <kevin.legouguec@gmail.com>
> Cc: 41584@debbugs.gnu.org,  dgutov@yandex.ru
> Date: Fri, 29 May 2020 20:11:40 +0200
> 
> This time, instead of hitting RET, insert a pair of parentheses, and
> wait blink-matching-delay seconds until the opening parenthesis stops
> being highlighted.  Before and after your fix, the line-prefix
> disappears until I enter another command.

Fixed.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-29 20:03       ` Eli Zaretskii
@ 2020-05-29 20:32         ` Kévin Le Gouguec
  2020-05-30  5:59           ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Kévin Le Gouguec @ 2020-05-29 20:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 41584-done, dgutov

Eli Zaretskii <eliz@gnu.org> writes:

> Fixed.

AFAICT you've scared the moles away, so I'll boldly close this report.
Thanks a lot for the efficient whacking!

(I guess xdisp.c is something we won't to touch with a 10-foot pole on
the release branch, especially for a bug that users have lived with for
so long?)




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#41584: 26.3; org-indent-mode's line-prefix text property flickers near overlays
  2020-05-29 20:32         ` Kévin Le Gouguec
@ 2020-05-30  5:59           ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2020-05-30  5:59 UTC (permalink / raw)
  To: Kévin Le Gouguec; +Cc: 41584, dgutov

> From: Kévin Le Gouguec <kevin.legouguec@gmail.com>
> Cc: 41584-done@debbugs.gnu.org,  dgutov@yandex.ru
> Date: Fri, 29 May 2020 22:32:11 +0200
> 
> (I guess xdisp.c is something we won't to touch with a 10-foot pole on
> the release branch, especially for a bug that users have lived with for
> so long?)

Exactly.




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-05-30  6:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28 19:54 26.3; org-indent-mode's line-prefix text property flickers near overlays Kévin Le Gouguec
2020-05-29  7:12 ` bug#41584: " Eli Zaretskii
2020-05-29 14:03   ` Eli Zaretskii
2020-05-29 18:11     ` Kévin Le Gouguec
2020-05-29 20:03       ` Eli Zaretskii
2020-05-29 20:32         ` Kévin Le Gouguec
2020-05-30  5:59           ` Eli Zaretskii

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).