unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Drew Adams <drew.adams@oracle.com>, 29050@debbugs.gnu.org
Subject: bug#29050: 26.0; Change in when `window-configuration-change-hook' is run
Date: Sun, 29 Oct 2017 12:19:03 +0100	[thread overview]
Message-ID: <59F5B927.5020907@gmx.at> (raw)
In-Reply-To: <37edcb5c-29d2-4125-a86d-a360db6fcd5f@default>

 >   *** Resizing a frame no longer runs 'window-configuration-change-hook'.
 >   'window-size-change-functions' should be used instead.
 >
 > Previously you could have a hook on 'window-configuration-change-hook'
 > that would take effect for frame resizings.  Now you cannot.
 >
 > Perhaps someone thought that just telling users to use
 > 'window-size-change-functions' instead would suffice.  No.  That hook
 > (which already existed, and which was fine as it was) is for ABNORMAL
 > hooks.  This incompatible change means that you cannot use the same,
 > NORMAL hook for both'window-configuration-change-hook' and
 > 'window-size-change-functions'.
 >
 > So if you want the behavior you had before, i.e., you want a function to
 > be invoked for both kinds of changes, you are out of luck.  You need to
 > have two different functions, or you need to at least change the
 > function to accept a frame argument, even if it is not used.  Why?

In earlier Emacsen, changing the frame size was allowed to delete all
windows but the selected one.  Nowadays, changing the frame size does
not delete windows any more and so does no more change the window
configuration proper but only the sizes of individual windows.

'window-configuration-change-hook' is a quite expensive hook which is
run for way too many functions in the windows area.  It's expensive
because it's run for every single invocation of these functions and
often even if nothing had changed at all.  I plan to run it exclusively
for the following cases - window deletion and creation and displaying a
different buffer in a window - which are all real changes.  Any window
resizing is covered by ‘window-size-change-functions’ which is now run
(almost) only when the size of a window really changed.

martin






  reply	other threads:[~2017-10-29 11:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-29  1:25 bug#29050: 26.0; Change in when `window-configuration-change-hook' is run Drew Adams
2017-10-29 11:19 ` martin rudalics [this message]
2017-10-30  0:10   ` Drew Adams
2017-10-30  8:24     ` martin rudalics

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=59F5B927.5020907@gmx.at \
    --to=rudalics@gmx.at \
    --cc=29050@debbugs.gnu.org \
    --cc=drew.adams@oracle.com \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).