[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59902: 30.0.50; Image overlay is not updated until the cursor moves
From: |
Ihor Radchenko |
Subject: |
bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay |
Date: |
Mon, 12 Dec 2022 08:35:43 +0000 |
Eli Zaretskii <eliz@gnu.org> writes:
>> 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?
For example, `create-image' could accept optional argument to update the
cached image if the file modification time is newer than it was when the
image was cached.
>> 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.
Sorry, I used inaccurate word here.
What I am referring to here is image overlay displayed old and new image
when you move the cursor to the overlay and back repeatedly.
> 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.
It could be possible, but looks like unnecessary complication.
Also, creating buffers often creates overheads associated with user
hooks.
I am not sure if something like
(let ((revert-without-query '(".")))
(with-current-buffer (find-file-noselect file)
;; Do not crown the buffer list.
(unless (string-prefix-p " " (buffer-name))
(setf (buffer-name) (concat " " (buffer-name))))
(buffer-string)))
is not going to cause significant slowdowns.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, (continued)
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/08
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/08
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/08
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/08
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/10
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/10
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/10
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/10
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/11
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/11
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay,
Ihor Radchenko <=
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/12
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Eli Zaretskii, 2022/12/15
- bug#59902: 30.0.50; Image overlay is not updated until the cursor moves to the overlay, Ihor Radchenko, 2022/12/15