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

From: martin rudalics <[email-masked]>
Date: Mon, 24 Sep 2018 14:25:15 +0200

>> I don't know what to do.  We run hooks too often and do not provide
 >> sufficient information when running them.  Sometimes we even hide
 >> information when running a hook.  The problem is that changing the
 >> current situation will have us either run even more hooks or cause
 >> protests when a hook is no more run where it was run before.
 >
 > I agree.  I think Lisp programs that use hooks provided by
 > display-related code should generally expect to be called in many
 > unrelated situations, and do whatever it takes by themselves to detect
 > when it's "their" use case.  Expectations or requests for more focused
 > hooks are impractical or even not feasible to implement, because core
 > code knows very little about the Lisp application which uses the hook.

'window-configuration-change-hook' is a great mess and is not
display-related.  What users really need IMO is a single hook say
'window-state-change-functions' that we'd call in redisplay_internal
in lieu of 'window-size-change-functions'.  We would run it if
something in the state of a frame's root window changed (including
size changes, changes of the windows' start positions and the selected
window) and additionally provide a list of the differences in the
frame's previous window state and the one redisplay is about to use.
But such a change would be incompatible and the hook would
consequently have to be run in parallel with our present hooks.

martin