Fix minor issues with removing left or right fringes
* lisp/window.el (window-max-chars-per-line): Account for 'left-fringe-width' and 'right-fringe-width' variables. * doc/lispref/windows.texi (Window Sizes): Document the effect on window text width when setting the width of one or both fringes to zero. * doc/emacs/display.texi (Fringes): Document the effect on window text width when setting the width of one or both fringes to zero. (Bug#22891)
This commit is contained in:
parent
d6ffd645a8
commit
52e798b7cd
3 changed files with 35 additions and 2 deletions
|
@ -1087,6 +1087,23 @@ To disable this, change the variable
|
||||||
@code{overflow-newline-into-fringe} to @code{nil}; this causes Emacs
|
@code{overflow-newline-into-fringe} to @code{nil}; this causes Emacs
|
||||||
to continue or truncate lines that are exactly as wide as the window.
|
to continue or truncate lines that are exactly as wide as the window.
|
||||||
|
|
||||||
|
If you customize @code{fringe-mode} to remove the fringes on one or
|
||||||
|
both sides of the window display, the features that display on the
|
||||||
|
fringe are not available. Indicators of line continuation and
|
||||||
|
truncation are an exception: when fringes are not available, Emacs
|
||||||
|
uses the leftmost and rightmost character cells to indicate
|
||||||
|
continuation and truncation with special ASCII characters, see
|
||||||
|
@ref{Continuation Lines}, and @ref{Line Truncation}. This reduces the
|
||||||
|
width available for displaying text on each line, because the
|
||||||
|
character cells used for truncation and continuation indicators are
|
||||||
|
reserved for that purpose. Since buffer text can include
|
||||||
|
bidirectional text, and thus both left-to-right and right-to-left
|
||||||
|
paragraphs (@pxref{Bidirectional Editing}), removing only one of the
|
||||||
|
fringes still reserves two character cells, one on each side of the
|
||||||
|
window, for truncation and continuation indicators, because these
|
||||||
|
indicators are displayed on opposite sides of the window in
|
||||||
|
right-to-left paragraphs.
|
||||||
|
|
||||||
@node Displaying Boundaries
|
@node Displaying Boundaries
|
||||||
@section Displaying Boundaries
|
@section Displaying Boundaries
|
||||||
|
|
||||||
|
|
|
@ -605,6 +605,12 @@ exceed its total height as returned by @code{window-total-height}.
|
||||||
@cindex body width of a window
|
@cindex body width of a window
|
||||||
The @dfn{body width} of a window is the width of its text area, which
|
The @dfn{body width} of a window is the width of its text area, which
|
||||||
does not include the scroll bar, fringes, margins or a right divider.
|
does not include the scroll bar, fringes, margins or a right divider.
|
||||||
|
Note that when one or both fringes are removed (by setting their width
|
||||||
|
to zero), the display engine reserves two character cells, one on each
|
||||||
|
side of the window, for displaying the continuation and truncation
|
||||||
|
glyphs, which leaves 2 columns less for text display. (The function
|
||||||
|
@code{window-max-chars-per-line}, described below, takes this
|
||||||
|
peculiarity into account.)
|
||||||
|
|
||||||
@defun window-body-width &optional window pixelwise
|
@defun window-body-width &optional window pixelwise
|
||||||
This function returns the width, in columns, of the body of window
|
This function returns the width, in columns, of the body of window
|
||||||
|
|
|
@ -1889,9 +1889,19 @@ the font."
|
||||||
(ncols (/ window-width font-width)))
|
(ncols (/ window-width font-width)))
|
||||||
(if (and (display-graphic-p)
|
(if (and (display-graphic-p)
|
||||||
overflow-newline-into-fringe
|
overflow-newline-into-fringe
|
||||||
(/= (frame-parameter nil 'left-fringe) 0)
|
(not
|
||||||
(/= (frame-parameter nil 'right-fringe) 0))
|
(or (eq left-fringe-width 0)
|
||||||
|
(and (null left-fringe-width)
|
||||||
|
(= (frame-parameter nil 'left-fringe) 0))))
|
||||||
|
(not
|
||||||
|
(or (eq right-fringe-width 0)
|
||||||
|
(and (null right-fringe-width)
|
||||||
|
(= (frame-parameter nil 'right-fringe) 0)))))
|
||||||
ncols
|
ncols
|
||||||
|
;; FIXME: This should remove 1 more column when there are no
|
||||||
|
;; fringes, lines are truncated, and the window is hscrolled,
|
||||||
|
;; but EOL is not in the view, because then there are 2
|
||||||
|
;; truncation glyphs, not one.
|
||||||
(1- ncols)))))
|
(1- ncols)))))
|
||||||
|
|
||||||
(defun window-current-scroll-bars (&optional window)
|
(defun window-current-scroll-bars (&optional window)
|
||||||
|
|
Loading…
Add table
Reference in a new issue