diff options
| author | Martin Rudalics | 2019-07-22 09:19:18 +0200 |
|---|---|---|
| committer | Martin Rudalics | 2019-07-22 09:19:18 +0200 |
| commit | 8e0ebb9a3cb9beef2f5ff50436fef1c54a3e3c92 (patch) | |
| tree | acabc59171db5611552b1a45aeea2149beefe689 /etc | |
| parent | 5ccaee4bbc184c53b262021361bd216af17e80f5 (diff) | |
| download | emacs-8e0ebb9a3cb9beef2f5ff50436fef1c54a3e3c92.tar.gz emacs-8e0ebb9a3cb9beef2f5ff50436fef1c54a3e3c92.zip | |
Handle persistence of windows' scroll bar and fringes settings (Bug#36193)
* doc/lispref/display.texi (Fringe Size/Pos): Document new
argument PERSISTENT of 'set-window-fringes'.
(Scroll Bars): Document new argument PERSISTENT of
'set-window-scroll-bars'. Mention that HORIZONTAL-TYPE must
be 'bottom' to show a horizontal scroll bar on mini windows.
* lisp/window.el (window-min-pixel-height): For mini windows the
minimum height is one line.
(window--min-size-1): Use value returned by
'window-min-pixel-height' when dealing with mini windows.
(window--resize-mini-window): Try to handle horizontal scroll
bars and size restrictions more accurately.
(window--state-put-2): Handle persistence of scroll bar
settings.
* src/frame.c (make_frame): Allow horizontal scroll bars in
mini windows.
(adjust_frame_size): Drop PIXELWISE argument in
'resize_frame_windows' calls.
* src/window.c (set_window_buffer): Don't override WINDOW's
scroll bar and fringe settings when marked as persistent.
(resize_frame_windows): Drop fourth argument PIXELWISE - SIZE
is always specified in terms of pixels. Try to handle height
of mini windows more accurately.
(grow_mini_window, shrink_mini_window): Use body height of
mini window when calculating expected height change. Take
horizontal scroll bars into account.
(struct saved_window): Two new members to handle persistence
of window fringes and scroll bars.
(Fset_window_configuration, save_window_save): Handle
persistence of fringes and scroll bars.
(set_window_fringes, set_window_scroll_bars): New arguments
PERSISTENT. Make dimension checks more accurate.
(Fset_window_fringes): New argument PERSISTENT.
(Fwindow_fringes, Fwindow_scroll_bars): Add PERSISTENT to
return values.
(Fset_window_scroll_bars): New argument PERSISTENT. In
doc-string mention that 'bottom' must be specified to get a
horizontal scroll bar in mini windows.
(compare_window_configurations): Add checks for persistence of
fringes and scroll bars.
* src/window.h (struct window): New boolean slots
'fringes_persistent' and 'scroll_bars_persistent'.
(WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Allow horizontal scroll bars
for mini windows.
(resize_frame_windows): Remove fourth argument of
'resize_frame_windows' in external declaration.
* src/xdisp.c (resize_mini_window): Use box text height to
tell whether mini window height changed.
(set_horizontal_scroll_bar): Set mini window's horizontal
scroll bar when its type is specified as 'bottom'.
* etc/NEWS: Mention new options for 'set-window-fringes' and
'set-window-scroll-bars'.
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/NEWS | 6 |
1 files changed, 6 insertions, 0 deletions
| @@ -2076,6 +2076,12 @@ See the section "(elisp) Window Hooks" in the Elisp manual for a | |||
| 2076 | detailed explanation of the new behavior. | 2076 | detailed explanation of the new behavior. |
| 2077 | 2077 | ||
| 2078 | +++ | 2078 | +++ |
| 2079 | ** Making scroll bar and fringe settings persistent for windows. | ||
| 2080 | The functions 'set-window-scroll-bars' and 'set-window-fringes' now | ||
| 2081 | have a new optional argument that makes the settings they produce | ||
| 2082 | reliably survive subsequent invocations of 'set-window-buffer'. | ||
| 2083 | |||
| 2084 | +++ | ||
| 2079 | ** New option 'resize-mini-frames'. | 2085 | ** New option 'resize-mini-frames'. |
| 2080 | This option allows to automatically resize minibuffer-only frames | 2086 | This option allows to automatically resize minibuffer-only frames |
| 2081 | similarly to how minibuffer windows are resized on "normal" frames. | 2087 | similarly to how minibuffer windows are resized on "normal" frames. |