all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Ihor Radchenko <yantar92@posteo.net>
Cc: 59902@debbugs.gnu.org
Subject: bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay
Date: Sun, 11 Dec 2022 12:23:34 +0200	[thread overview]
Message-ID: <83bkoautll.fsf@gnu.org> (raw)
In-Reply-To: <87zgbul2ln.fsf@localhost> (message from Ihor Radchenko on Sun, 11 Dec 2022 09:19:16 +0000)

> From: Ihor Radchenko <yantar92@posteo.net>
> Cc: 59902@debbugs.gnu.org
> Date: Sun, 11 Dec 2022 09:19:16 +0000
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > The idea of clearing images from time to time was discussed, but AFAIR
> > we didn't find a good way that fits all the needs for doing so.
> 
> Are you referring to https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33275
> ?

That's one of them, yes.  There were others.

> I do not see anyone proposing cache expiry time there. Expiry is not
> really related to this particular bug report, but might be a good idea
> to help large memory consumption that is reported from time to time (I
> reported once for pdfs and I have seen people report memory issues with
> images).
> 
> > I think this is best left to the application level.  In particular, in
> > this case, the application _knows_ when it will replace the image
> > file.
> 
> No. Not really. Source block execution does not pass any information
> about updating/not updating images to Org image display code. Even if it
> did, the same issue could appear when the image file changes on disk
> outside Emacs.

Then I don't think I understand what you expect Emacs to do in these
cases.  We have no idea when the image file is replaced, and cannot
have such an idea without examining the file at high enough frequency.
Doing this "from time to time" is going to miss some changes, or take
note of them too late.  What else is possible?

> I was still able to make some improvements in Org's image code thanks to
> your replies.
> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=a12d15df9
> 
> Yet, do note that flickering two different image versions when moving
> point is unexpected even considering the information you provided.

Flickering is expected when you do something that affects a large
portion of the Emacs display.  For example, the same will happen if
you change a large overlay at high enough frequency.  There's no way
around that except not doing that.

Why was this implementation chosen for whatever feature that produces
images?  Emacs doesn't react instantly to changes in disk files that
it visits, and here you expect it to do so.  Isn't it possible to
implement this in some other way, like have the program produce its
image data in a temporary Emacs buffer, then use that buffer's
contents for creating an image?  Then I believe the updated image will
have a different hash value, and there will be no cache-related
collisions.





  reply	other threads:[~2022-12-11 10:23 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-08 11:17 bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay Ihor Radchenko
2022-12-08 11:37 ` Eli Zaretskii
2022-12-08 11:52   ` Ihor Radchenko
2022-12-08 14:03     ` Eli Zaretskii
2022-12-08 14:10       ` Ihor Radchenko
2022-12-08 18:51     ` Eli Zaretskii
2022-12-08 19:27       ` Ihor Radchenko
2022-12-08 20:24         ` Eli Zaretskii
2022-12-10  9:57           ` Ihor Radchenko
2022-12-10 11:03             ` Eli Zaretskii
2022-12-10 11:10               ` Ihor Radchenko
2022-12-10 14:18                 ` Eli Zaretskii
2022-12-11  9:19                   ` Ihor Radchenko
2022-12-11 10:23                     ` Eli Zaretskii [this message]
2022-12-12  8:35                       ` Ihor Radchenko
2022-12-12 13:15                         ` Eli Zaretskii
2022-12-15 10:24                           ` Ihor Radchenko
2022-12-15 10:49                             ` Eli Zaretskii
2022-12-15 10:53                               ` Ihor Radchenko
2022-12-15 10:58                                 ` Eli Zaretskii
2022-12-15 11:05                                   ` Ihor Radchenko
2022-12-15 11:16                                     ` Eli Zaretskii
2022-12-15 11:20                                       ` Ihor Radchenko
2022-12-15 13:16                                         ` Eli Zaretskii
2022-12-15 13:23                                           ` Ihor Radchenko
2022-12-15 14:25                                             ` Eli Zaretskii
2022-12-15 14:31                                               ` Ihor Radchenko
2022-12-08 19:18 ` William Denton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83bkoautll.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=59902@debbugs.gnu.org \
    --cc=yantar92@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.