emacs-devel
[Top][All Lists]
Advanced

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

lru-window, window--try-to-split-window, split-width-threshold


From: Drew Adams
Subject: lru-window, window--try-to-split-window, split-width-threshold
Date: Fri, 22 Aug 2008 09:04:44 -0700

`split-width-threshold' was apparently introduced recently. Depending on its
value, the lru-window can now get split horizontally to display *Completions*
during minibuffer input.

I have code that changes the display of completions (columns, spacing etc.),
depending on the width *Completions* will have when it is displayed. Before it
is displayed, I obtain (window-width (get-lru-window)) and use that as the
assumed window width.

This is no longer adequate, however, because the effective width might be, say,
half of that if the lru window gets split horizontally to display *Completions*.
And I can't simply use half of that width systematically, because there might be
no horizontal split, depending on `split-width-threshold'. I don't know a way to
know ahead of time whether a horizontal split will occur (without reproducing
all of the code/logic of `window--try-to-split-window' - checking for dedicated
windows etc.).

I tried this: (window--try-to-split-window (get-lru-window)), figuring that I
might as  well split the lru-window myself, if it is going to be split, so that
I can get its new width and use that.

The problem with this is that once the split occurs the window that was split is
apparently no longer the lru window, so *Completions* gets displayed by
splitting yet another window. If I have two full-frame-width windows (frame
split vertically), the effect is that both windows get split when *Completions*
is displayed (and then unsplit when *Completions* is finished).

Any suggestions? What am I missing? Is there some way, say, after splitting the
lru window myself, that I can make it (or the new one) the lru again, so that
`display-buffer' will use it for *Completions*? IOW, is there a way to *set* the
lru window? Any help is welcome.






reply via email to

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