Don't call modify_region or signal_after_change here.
(Fset_text_properties, Fadd_text_properties, Fremove_text_properties):
Call them here when appropriate.
(minibuf_level): extern decl moved to top level.
(Fwrite_region): Query before writing to a file that is locked,
even if it is locked by the same user.
(x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
(XTchange_line_highlight, dumpglyphs, XTclear_end_of_line)
(do_line_dance, pixel_to_glyph_coords): Use FRAME_WINDOW_WIDTH.
(x_scroll_bar_move, x_scroll_bar_create):
Add a border around the actual window.
(x_scroll_bar_expose): Don't trim the width here.
(coordinates_in_window): Use WINDOW_LEFT_MARGIN, WINDOW_RIGHT_MARGIN,
and WINDOW_RIGHT_EDGE. Adjust for left-side scroll bar margin.
(window_loop, Fdisplay_buffer): Use new WINDOW_FULL_WIDTH_P macro.
(window_internal_width): Window width now always includes the
scroll bar, if any. Use WINDOW_RIGHTMOST_P and WINDOW_FULL_WIDTH_P.
none/left/right type for identifying vertical scroll bars.
(struct frame): Use vertical_scroll_bar_type.
(FRAME_HAS_VERTICAL_SCROLL_BARS): Use vertical scroll bar type.
(FRAME_VERTICAL_SCROLL_BAR_TYPE): New macro.
(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT): New macros.
(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT): New macros.
(FRAME_SCROLL_BAR_WIDTH, FRAME_LEFT_SCROLL_BAR_WIDTH): New macros.
(FRAME_WINDOW_WIDTH, FRAME_WINDOW_WIDTH_ARG): New macros.
(SET_FRAME_WIDTH): New macro.
(WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side
croll bars too.
(syms_of_win32fns): Initialize and staticpro Qright.
(x_set_vertical_scroll_bars): Check for left<->right<->none
scroll bar changes, and modify the vertical scroll bar type as appropriate.
(x_figure_window_size): Use new SET_FRAME_WIDTH macro.
(Fx_create_frame): Likewise.
macros WINDOW_LEFT_MARGIN and WINDOW_RIGHT_EDGE.
(adjust_window_charstarts, verify_charstarts, cancel_my_columns):
Use new macro WINDOW_LEFT_MARGIN instead of w->left.
(direct_output_for_insert, direct_output_forward_char): Likewise.
(buffer_posn_from_coords): Likewise.
(verify_charstarts): Use new macro WINDOW_FULL_WIDTH_P.
(update_frame): For determining when to wrap the cursor, use the
new macro FRAME_WINDOW_WIDTH instead of FRAME_WIDTH; they aren't
necessarily the same any more.
(change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes.
Give `set_window_width' the window width value. Use new macro SET_FRAME_WIDTH.