• Martin Rudalics's avatar
    Handle persistence of windows' scroll bar and fringes settings (Bug#36193) · 8e0ebb9a
    Martin Rudalics authored
    * 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'.
    8e0ebb9a