Subject: bug#32672: 27.0.50; image resize on window resizing

From: Juri Linkov <[email-masked]>
Date: Thu, 13 Sep 2018 02:18:38 +0300

>> There is still a problem how to catch a moment when an image-mode buffer
>> is displayed after switching to it.
>
> "Switching to a buffer" means to display it ...
>
>> For example, when the selected window
>> is resized while it displayed a non-image-mode buffer, then after that
>> the current buffer switched to the image-mode buffer.
>
> ... so please reformulate this in terms of a sequence of some sort of
> pseudo actions.  In Emacs terminology, switching to a buffer implies
> making it current but making a buffer current doesn't imply switching
> to it.
>
>> I can't find a hook
>> that could be activated to resize the image to fit the new sizes of the window.
>
> Tell us which action should trigger such a hook.

It's not straightforward to find a hook that covers all cases, it seems
at least it should be called when an image-mode buffer comes to the top
of buffer-list, and the closest hook for that is buffer-list-update-hook.

I see that when it's buffer-local, then it guarantees that the affected
image-mode buffer is always current-buffer at the time of hook invocation.
It's fired every time the image-mode buffer comes to the top, even when
calling quit-window on another buffer that gives way to the image-mode buffer.

The only case when buffer-list-update-hook doesn't run is when the
image-mode buffer comes to the top by `C-x <C-left>' (previous-buffer),
whereas `C-x <right>' (next-buffer) works fine.