mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-09 15:50:21 +00:00
Fixes to account for windows' tab lines
* doc/lispref/display.texi (Size of Displayed Text): Fix entry on 'window-text-pixel-size'. * lisp/window.el (window--dump-window): Dump tab-line-height and scroll-bar-height too. (window--min-size-1): Take 'window-tab-line-height' into account. * src/xdisp.c (Fwindow_text_pixel_size): Fix doc-string of 'window-text-pixel-size'. Rename last argument to 'MODE-LINES'.
This commit is contained in:
parent
ced72b6e4c
commit
f5b8df14c6
@ -2050,7 +2050,7 @@ displayed in a given window. This function is used by
|
||||
(@pxref{Resizing Windows}) to make a window exactly as large as the text
|
||||
it contains.
|
||||
|
||||
@defun window-text-pixel-size &optional window from to x-limit y-limit mode-and-header-line
|
||||
@defun window-text-pixel-size &optional window from to x-limit y-limit mode-lines
|
||||
This function returns the size of the text of @var{window}'s buffer in
|
||||
pixels. @var{window} must be a live window and defaults to the
|
||||
selected one. The return value is a cons of the maximum pixel-width
|
||||
@ -2092,12 +2092,12 @@ calculating the pixel-height of a large buffer can take some time, it
|
||||
makes sense to specify this argument; in particular, if the caller
|
||||
does not know the size of the buffer.
|
||||
|
||||
The optional argument @var{mode-and-header-line} @code{nil} or omitted
|
||||
means to not include the height of the mode- or header-line of
|
||||
@var{window} in the return value. If it is either the symbol
|
||||
@code{mode-line} or @code{header-line}, include only the height of that
|
||||
The optional argument @var{mode-lines} @code{nil} or omitted means to
|
||||
not include the height of the mode-, tab- or header-line of @var{window}
|
||||
in the return value. If it is either the symbol @code{mode-line},
|
||||
@code{tab-line} or @code{header-line}, include only the height of that
|
||||
line, if present, in the return value. If it is @code{t}, include the
|
||||
height of both, if present, in the return value.
|
||||
height of all of these lines, if present, in the return value.
|
||||
@end defun
|
||||
|
||||
@code{window-text-pixel-size} treats the text displayed in a window as a
|
||||
|
@ -1407,9 +1407,12 @@ before writing to it."
|
||||
(cadr fringes)
|
||||
(window-scroll-bar-width window)
|
||||
(window-right-divider-width window))
|
||||
(format "height header-line: %s mode-line: %s divider: %s\n"
|
||||
(format "height tab-line: %s header-line: %s mode-line: %s\n"
|
||||
(window-tab-line-height window)
|
||||
(window-header-line-height window)
|
||||
(window-mode-line-height window)
|
||||
(window-mode-line-height window))
|
||||
(format "height scroll-bar: %s divider: %s"
|
||||
(window-scroll-bar-height window)
|
||||
(window-bottom-divider-width window)))))
|
||||
(insert "\n")))
|
||||
|
||||
@ -1691,6 +1694,7 @@ return the minimum pixel-size of WINDOW."
|
||||
((let ((char-size (frame-char-size window))
|
||||
(pixel-height
|
||||
(+ (window-safe-min-size window nil t)
|
||||
(window-tab-line-height window)
|
||||
(window-header-line-height window)
|
||||
(window-scroll-bar-height window)
|
||||
(window-mode-line-height window)
|
||||
|
19
src/xdisp.c
19
src/xdisp.c
@ -10661,13 +10661,13 @@ position specified by TO. Since calculating the text height of a
|
||||
large buffer can take some time, it makes sense to specify this
|
||||
argument if the size of the buffer is large or unknown.
|
||||
|
||||
Optional argument MODE-AND-HEADER-LINE nil or omitted means do not
|
||||
include the height of the mode- or header-line of WINDOW in the return
|
||||
value. If it is either the symbol `mode-line' or `header-line', include
|
||||
Optional argument MODE-LINES nil or omitted means do not include the
|
||||
height of the mode-, tab- or header-line of WINDOW in the return value.
|
||||
If it is the symbol `mode-line', 'tab-line' or `header-line', include
|
||||
only the height of that line, if present, in the return value. If t,
|
||||
include the height of both, if present, in the return value. */)
|
||||
include the height of any of these, if present, in the return value. */)
|
||||
(Lisp_Object window, Lisp_Object from, Lisp_Object to, Lisp_Object x_limit,
|
||||
Lisp_Object y_limit, Lisp_Object mode_and_header_line)
|
||||
Lisp_Object y_limit, Lisp_Object mode_lines)
|
||||
{
|
||||
struct window *w = decode_live_window (window);
|
||||
Lisp_Object buffer = w->contents;
|
||||
@ -10841,18 +10841,15 @@ include the height of both, if present, in the return value. */)
|
||||
if (y > max_y)
|
||||
y = max_y;
|
||||
|
||||
if (EQ (mode_and_header_line, Qtab_line)
|
||||
|| EQ (mode_and_header_line, Qt))
|
||||
if (EQ (mode_lines, Qtab_line) || EQ (mode_lines, Qt))
|
||||
/* Re-add height of tab-line as requested. */
|
||||
y = y + WINDOW_TAB_LINE_HEIGHT (w);
|
||||
|
||||
if (EQ (mode_and_header_line, Qheader_line)
|
||||
|| EQ (mode_and_header_line, Qt))
|
||||
if (EQ (mode_lines, Qheader_line) || EQ (mode_lines, Qt))
|
||||
/* Re-add height of header-line as requested. */
|
||||
y = y + WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
|
||||
if (EQ (mode_and_header_line, Qmode_line)
|
||||
|| EQ (mode_and_header_line, Qt))
|
||||
if (EQ (mode_lines, Qmode_line) || EQ (mode_lines, Qt))
|
||||
/* Add height of mode-line as requested. */
|
||||
y = y + WINDOW_MODE_LINE_HEIGHT (w);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user