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

From: martin rudalics <[email-masked]>
Date: Fri, 14 Sep 2018 10:33:23 +0200

> Trying to put to image-mode:
 >
 > 	(add-hook 'buffer-list-update-hook
 >                    (lambda () (message "buffer-list-update-hook %S"
 >                                        (current-buffer))) nil t)
 >
 > shows in *Messages* that it's called only when navigating away from the
 > image-mode buffer, but not when coming back to the image-mode buffer, e.g.
 > `C-x <left>', then resize the window, then type `C-x <right>',
 > it's not called.  Also it's not called in another direction:
 > `C-x <right>', then resize the window, then type `C-x <left>'.

I forgot that you wanted to make this buffer-local as well.  We
curently have no special semantics attached to the buffer-local
version of this so yes: When the buffer is not current, its local hook
is not run.  To fix this, for example in 'bury-buffer-internal' we
would have to add an extra

   /* Run buffer-list-update-hook.  */
   if (!NILP (Vrun_hooks))
     call1 (Vrun_hooks, Qbuffer_list_update_hook);

with BUFFER current.  We probably could do that but I'm not very fond
of it.  The buffer list is decidedly more global than a window.  And
it's only the tip of an iceberg - how many more hooks would we have to
adapt in a similar fashion?

martin