unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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




  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

  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=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 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).