From: Stefan Monnier <monnier@iro.umontreal.ca>
To: martin rudalics <rudalics@gmx.at>
Cc: Juanma Barranquero <lekktu@gmail.com>, Emacs Devel <emacs-devel@gnu.org>
Subject: Re: Wrong window end reported after splitting window
Date: Sun, 24 Feb 2008 21:33:31 -0500 [thread overview]
Message-ID: <jwvzltp93vf.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <47C1F0CA.9070804@gmx.at> (martin rudalics's message of "Sun, 24 Feb 2008 23:33:46 +0100")
>>> I suppose what you want is to investigate all affected windows when the
>>> corresponding configuration changes. This means we'd have to change
>>> `delete-window', `enlarge-window', `shrink-window',
>>> `adjust-window-trailing-edge' and `set-window-configuration' as to walk
>>> all windows on the frame, check whether one of the associated buffers
>>> has a non-nil local value for `window-configuration-change-hook', and
>>> run that hook (in addition to a global hook).
>> Indeed, it may be "too much work" but might be worth the trouble.
>> Otherwise buffer-local settings for window-configuration-change-hook
>> simply don't make any sense.
> I'm not sure whether buffer-local settings make sense at all. You have
> to walk windows anyway to find out which window is affected. IMHO a
> buffer-local hook makes sense here iff the affected window is passed as
> argument.
I was thining of passing it implicitly as the selected-window, just as
the selected-frame is passed implicitly for global
window-configuration-change-hooks.
>>> The question here is what
>>> to do when the same buffer is shown in two or more windows on the
>>> affected frame - should we call the hook twice in that case?
>>
>> The behavior of window-configuration-change-hook is clearly documented
>> as being run "once per frame", so the hook function are currently
>> responsible for cycling through the windows of the frame
>> if/when needded.
> You mean they "should" be responsible?
No, they *are* responsible, i.e. they *should* do it.
>> [ This doesn't rule out running the hook twice or more, tho, since we
>> don't specifically say how careful Emacs should be in avoiding to run
>> it redundantly. ]
> When I show the same buffer twice in the frame and run the hook twice
> for the buffer how do I convey the feedback for _which_ window the hook
> is run?
See above.
> BTW, shall I run it for the buffers of deleted windows too?
I don't think it can be done (i.e. it would be a different hook).
>> At least for image-mode and doc-view-mode's use of
>> window-configuration-change-hook, this would do the right thing.
> Please elaborate.
They currently (incorrectly) use a buffer-local setting which needs to
be run whenever set-window-buffer is set to display those buffers (so
as to reset the [vh]scroll settings among other things).
Making the hook global would make the code work right, but with the
disadvantage that ...well... it would be global even though it's only
needed when/where those buffers are displayed.
Stefan
next prev parent reply other threads:[~2008-02-25 2:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-23 15:50 Wrong window end reported after splitting window Juanma Barranquero
2008-02-23 18:52 ` martin rudalics
2008-02-23 20:47 ` Juanma Barranquero
2008-02-23 22:36 ` martin rudalics
2008-02-24 2:08 ` Juanma Barranquero
2008-02-24 15:34 ` Stefan Monnier
2008-02-24 22:33 ` martin rudalics
2008-02-25 2:33 ` Stefan Monnier [this message]
2008-02-25 14:07 ` martin rudalics
2008-02-25 16:09 ` Stefan Monnier
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvzltp93vf.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=emacs-devel@gnu.org \
--cc=lekktu@gmail.com \
--cc=rudalics@gmx.at \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.