[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#4543: window-full-height-p
From: |
martin rudalics |
Subject: |
bug#4543: window-full-height-p |
Date: |
Fri, 02 Oct 2009 10:39:33 +0200 |
User-agent: |
Thunderbird 2.0.0.21 (Windows/20090302) |
>>> (defun window-full-height-p (&optional window)
>>> (unless window
>>> (setq window (selected-window)))
>>> (= (window-height window)
>>> (window-height (frame-root-window (window-frame window)))))
>
> Please could this be installed?
I have a number of problems with this:
(1) The name is problematic. Note that `window-full-width-p' has no
such problem because when it returns t the window is as wide as the
containing frame.
(2) It might give unexpected results when invoked with the minibuffer
window as argument. Again `window-full-width-p' has no such problems.
(3) It must be rewritten as soon as someone implements horizontal
scrollbars ;-)
Currently, getting (and setting) the sizes of windows (or frames) is a
mess. Consider, for example, `split-window': If you use `window-width'
on its argument WINDOW in order to pre-calculate the SIZE argument you
almost certainly end up doing the wrong thing.
Personally, I use a function `window-size' to return the total size of a
window thus avoiding such confusions:
DEFUN ("window-size", Fwindow_size, Swindow_size, 0, 2, 0,
doc: /* Return total number of lines of WINDOW.
WINDOW defaults to the selected window. The return values includes any
header- or mode-line. Optional argument HORIZONTAL non-nil means return
total number of columns of WINDOW. In this case the return value
includes any scroll-bars of WINDOW. */)
(window, horizontal)
Lisp_Object window, horizontal;
{
if (!NILP (horizontal))
return decode_any_window (window)->total_cols;
else
return decode_any_window (window)->total_lines;
}
Anyway, if you can think of a better name (which should resolve (1) and
(2)) and a comment wrt (3) feel free to install it. I'm currently a bit
reluctant to install because my internet connection has been unreliable
over the past weeks.
martin