emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wrong window end reported after splitting window


From: Stefan Monnier
Subject: Re: Wrong window end reported after splitting window
Date: Sun, 24 Feb 2008 21:33:31 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

>>> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]