1. 12 Apr, 2017 1 commit
  2. 01 Jan, 2017 1 commit
  3. 11 Dec, 2016 1 commit
    • Glenn Morris's avatar
      Fixes related to select-enable-clipboard · 442e2f61
      Glenn Morris authored
      * lisp/menu-bar.el (clipboard-yank, clipboard-kill-ring-save)
      (clipboard-kill-region):
      * lisp/eshell/esh-io.el (eshell-virtual-targets)
      (eshell-clipboard-append):
      Replace option gui-select-enable-clipboard with
      select-enable-clipboard; renamed October 2014.  (Bug#25145)
      442e2f61
  4. 06 Nov, 2016 1 commit
    • Paul Eggert's avatar
      Modernize usage of 'macOS' in doc and comments · dc152c54
      Paul Eggert authored
      Apple changed the spelling of its operating system again, to "macOS",
      effective with macOS 10.12 Sierra (2016-09-20).  Change Emacs
      documentation and comments to match this.  Stick with older OS
      spellings ("OS X", "Mac OS X") when talking about older releases where
      the older names are more correct.
      dc152c54
  5. 17 May, 2016 1 commit
  6. 01 May, 2016 1 commit
  7. 13 Mar, 2016 1 commit
  8. 12 Mar, 2016 1 commit
    • Phillip Lord's avatar
      Simplify "Visit New File" to "New File" · d457fd9d
      Phillip Lord authored
      * doc/emacs/files.texi,lisp/menu-bar.el (menu-bar-file-menu),
        lisp/startup.el(normal-mouse-start-screen,
        normal-no-mouse-startup-screen): Change label "Visit New File" to "New
        File".
      d457fd9d
  9. 06 Feb, 2016 2 commits
  10. 01 Jan, 2016 1 commit
  11. 29 Nov, 2015 3 commits
  12. 12 Oct, 2015 1 commit
  13. 25 Aug, 2015 1 commit
  14. 21 Aug, 2015 1 commit
  15. 06 Jul, 2015 1 commit
  16. 03 Jul, 2015 1 commit
    • Martin Rudalics's avatar
      Fix some issues with `window-divider-mode' · e3c4cd00
      Martin Rudalics authored
      * lisp/frame.el (window-divider-default-places): New option.
      (window-divider-mode): Remove option.
      (window-divider-mode): Make it a "regular" minor mode.
      (window-divider-width-valid-p): Drop frame- prefix.
      (window-divider-mode-apply): New argument ENABLE.  Drop frame-
      prefix.  Handle `window-divider-default-places'.
      (frame--window-divider-mode-set-and-apply): Remove.
      (window-divider-default-bottom-width)
      (window-divider-default-right-width): Drop :group entries.
      * lisp/menu-bar.el (menu-bar-bottom-and-right-window-divider)
      (menu-bar-right-window-divider, menu-bar-bottom-window-divider)
      (menu-bar-no-window-divider): Set `window-divider-default-places'
      and call `window-divider-mode'.
      * doc/emacs/frames.texi (Window Dividers): Document
      `window-divider-default-places'.
      e3c4cd00
  17. 02 Jul, 2015 1 commit
    • Martin Rudalics's avatar
      Improve accessibility of window dividers. (Bug#20183) · 0245cc37
      Martin Rudalics authored
      * lisp/faces.el (window-divider)
      (window-divider-first-pixel, window-divider-last-pixel): Change
      membership from `frames' to `window-divider' customization group.
      * lisp/frame.el (window-divider): New customization group.
      (window-divider-mode): New minor mode.
      (window-divider-default-bottom-width)
      (window-divider-default-right-width): New options.
      (frame--window-divider-previous-mode): New variable.
      (frame-window-divider-width-valid-p)
      (frame--window-divider-mode-apply)
      (frame--window-divider-mode-set-and-apply): New functions.
      * lisp/menu-bar.el (menu-bar-options-save): Save
      window-divider-mode settings.
      (menu-bar-window-divider-customize)
      (menu-bar-bottom-and-right-window-divider)
      (menu-bar-right-window-divider, menu-bar-bottom-window-divider)
      (menu-bar-no-window-divider): New functions.
      (menu-bar-showhide-window-divider-menu): New variable.
      (menu-bar-showhide-menu): Show/hide window divider menu.
      * lisp/mouse.el (mouse-split-window-vertically)
      (mouse-split-window-horizontally): Replace `error' by
      `user-error'.  Bind `window-combination-resize' to nil.
      (top-level): Add/reorder mouse key bindings on mode- and
      vertical-line.
      0245cc37
  18. 30 Jun, 2015 1 commit
    • Paul Eggert's avatar
      In strings, prefer plain ` and ' to \` and \' · 3213d770
      Paul Eggert authored
      * lisp/allout.el (allout-insert-listified):
      * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
      * lisp/ls-lisp.el (ls-lisp-UCA-like-collation)
      (ls-lisp-string-lessp):
      * lisp/menu-bar.el (menu-bar-open):
      * lisp/obsolete/otodo-mode.el (todo-top-priorities):
      * lisp/progmodes/compile.el (compile):
      * lisp/progmodes/etags.el (tags-loop-scan):
      * lisp/progmodes/make-mode.el (makefile-browser-insert-continuation):
      * lisp/subr.el (posn-actual-col-row):
      * lisp/term/pc-win.el (x-list-fonts):
      * lisp/textmodes/texinfmt.el (texinfmt-version):
      * lisp/textmodes/texnfo-upd.el (texinfo-master-menu):
      * lisp/time.el (display-time-world-list):
      * lisp/tmm.el (tmm-menubar):
      * src/buffer.c (syms_of_buffer):
      * src/fileio.c (syms_of_fileio):
      Omit unnecessary and confusing backslash before quote.
      * lisp/erc/erc.el (erc-cmd-LASTLOG):
      * lisp/progmodes/flymake.el (flymake-fix-file-name):
      * lisp/progmodes/vhdl-mode.el (vhdl-in-extended-identifier-p):
      Fix string that was intended to escape a backslash and not a quote.
      3213d770
  19. 17 Jun, 2015 1 commit
    • Glenn Morris's avatar
      Address some compilation warnings. · 55b41a82
      Glenn Morris authored
      * lisp/face-remap.el (text-scale-adjust):
      * lisp/menu-bar.el (popup-menu-normalize-position):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
      * lisp/emacs-lisp/generator.el (cps--transform-1):
      * lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
      * lisp/obsolete/vc-arch.el (vc-arch-mode-line-string):
      * lisp/progmodes/octave.el (octave-goto-function-definition)
      (octave-find-definition-default-filename):
      Replace 't' with '_' in pcase.
      55b41a82
  20. 23 May, 2015 1 commit
    • Stefan Monnier's avatar
      Replace gui-method macros with cl-generic with &context · 919281dd
      Stefan Monnier authored
      * lisp/frame.el (gui-method--name, gui-method, gui-method-define)
      (gui-method-declare, gui-call): Remove.
      (frame-creation-function): Use cl-defgeneric.
      (make-frame): Adjust callers.
      
      * lisp/menu-bar.el (menu-bar-edit-menu):
      Use gui-backend-selection-exists-p.
      
      * lisp/select.el (x-get-clipboard): Use gui-backend-get-selection.
      (gui-backend-get-selection): New cl-generic to replace
      gui-get-selection method.
      (gui-backend-set-selection): New cl-generic to replace
      gui-set-selection method.
      (gui-selection-owner-p): New cl-generic to replace
      gui-selection-owner-p method.
      (gui-backend-selection-exists-p): New cl-generic to replace
      gui-selection-exists-p method.  Adjust all callers.
      
      * lisp/server.el (server-create-window-system-frame): Don't ignore
      window-system spec even when unsupported.
      
      * lisp/simple.el (deactivate-mark): Use new gui-backend-* functions.
      
      * lisp/startup.el (handle-args-function, window-system-initialization):
      Use cl-defgeneric.
      (command-line): Adjust calls accordingly.
      
      * lisp/term/ns-win.el (ns-window-system-initialization): Turn into
      a window-system-initialization method.
      (handle-args-function, frame-creation-function): Use cl-defmethod.
      (gui-set-selection, gui-selection-owner-p, gui-selection-exists-p)
      (gui-get-selection): Use cl-defmethod on the new functions instead.
      
      * lisp/term/pc-win.el (w16-get-selection-value): Turn into
      a gui-backend-get-selection method.
      (gui-selection-exists-p, gui-selection-owner-p, gui-set-selection):
      Use cl-defmethod on the new functions instead.
      (msdos-window-system-initialization): Turn into
      a window-system-initialization method.
      (frame-creation-function, handle-args-function): Use cl-defmethod.
      
      * lisp/term/w32-win.el (w32-window-system-initialization): Turn into
      a window-system-initialization method.
      (handle-args-function, frame-creation-function): Use cl-defmethod.
      (gui-set-selection, gui-selection-owner-p, gui-selection-exists-p)
      (gui-get-selection): Use cl-defmethod on the new functions instead.
      
      * lisp/term/x-win.el (x-window-system-initialization): Turn into
      a window-system-initialization method.
      (handle-args-function, frame-creation-function): Use cl-defmethod.
      (gui-set-selection, gui-selection-owner-p, gui-selection-exists-p)
      (gui-get-selection): Use cl-defmethod on the new functions instead.
      
      * lisp/term/xterm.el (xterm--set-selection): Turn into
      a gui-backend-set-selection method.
      
      * src/nsselect.m (Fns_selection_exists_p): Remove unused arg `terminal'.
      (Fns_selection_owner_p): Remove unused arg `terminal'.
      (Fns_get_selection): Remove unused args `time_stamp' and `terminal'.
      919281dd
  21. 22 Mar, 2015 1 commit
  22. 31 Jan, 2015 1 commit
  23. 13 Jan, 2015 1 commit
    • Dmitry Gutov's avatar
      Don't eagerly load xref · 329b9021
      Dmitry Gutov authored
      Fixes: debbugs:19554
      
      * lisp/menu-bar.el (menu-bar-goto-menu): Before calling
      `xref-marker-stack-empty-p', first check that `xref' is loaded.
      329b9021
  24. 03 Jan, 2015 1 commit
  25. 01 Jan, 2015 2 commits
  26. 30 Dec, 2014 1 commit
  27. 29 Dec, 2014 2 commits
    • Dmitry Gutov's avatar
      Unbreak jumping to an alias's definition · 381c0bfa
      Dmitry Gutov authored
      * lisp/emacs-lisp/find-func.el (find-function-library): Return a pair
      (ORIG-FUNCTION . LIBRARY) instead of just its second element.
      (find-function-noselect): Use it.
      
      * lisp/progmodes/elisp-mode.el (elisp--xref-identifier-file): Rename to
      `elisp--xref-identifier-location', incorporate logic from
      `elisp--xref-find-definitions', use the changed
      `find-function-library' return value.
      381c0bfa
    • Dmitry Gutov's avatar
      Declare many etags command obsolete; update the goto menu · c1eec814
      Dmitry Gutov authored
      * lisp/menu-bar.el (menu-bar-goto-menu): Replace all but one etags item
      with xref ones.
      
      * lisp/progmodes/etags.el (find-tag-other-window)
      (find-tag-other-frame, find-tag-regexp, tags-loop-continue)
      (tags-apropos): Declare obsolete.
      c1eec814
  28. 18 Dec, 2014 1 commit
    • Sam Steingold's avatar
      Keyboard interface (C-f10) to `mouse-buffer-menu' (C-down-mouse-1). · 87f9ec7a
      Sam Steingold authored
      * lisp/mouse.el (mouse-buffer-menu-map): Extract from `mouse-buffer-menu'.
      (mouse-buffer-menu): Use `mouse-buffer-menu-map'.
      * lisp/menu-bar.el (menu-bar-buffer-vector): Extract from
      `menu-bar-update-buffers'.
      (menu-bar-update-buffers): Use `menu-bar-buffer-vector'.
      (buffer-menu-open): New user command, bound globally to C-f10,
      provides a keyboard interface to `mouse-buffer-menu' (C-down-mouse-1).
      (mouse-buffer-menu-keymap): Use `menu-bar-buffer-vector' to
      convert the value returned by `mouse-buffer-menu-map' to a list
      acceptable to `popup-menu' for `buffer-menu-open'.
      87f9ec7a
  29. 27 Nov, 2014 1 commit
  30. 10 Oct, 2014 1 commit
    • Stefan Monnier's avatar
      * lisp/select.el (gui-selection-exists-p-alist): New method. · a27cd28f
      Stefan Monnier authored
      * lisp/menu-bar.el (menu-bar-edit-menu, clipboard-yank):
      * lisp/simple.el (deactivate-mark): Use it.
      * lisp/term/x-win.el (gui-selection-exists-p):
      * lisp/term/w32-win.el (gui-selection-exists-p):
      * lisp/term/pc-win.el (gui-selection-exists-p):
      * lisp/term/ns-win.el (gui-selection-exists-p): Provide a backend instance.
      a27cd28f
  31. 06 Oct, 2014 1 commit
  32. 01 Oct, 2014 1 commit
    • Stefan Monnier's avatar
      Consolidate x-select-text. · a8b36b95
      Stefan Monnier authored
      * lisp/frame.el (gui-method, gui-method-define, gui-method-declare)
      (gui-call): New macros.
      (gui-method--name): New function.
      (frame-creation-function-alist): Use gui-method-declare.
      (make-frame): Use gui-method.
      * lisp/select.el (gui-select-enable-clipboard): Rename from
      x-select-enable-clipboard and move here.
      (x-select-enable-clipboard): Define as obsolete alias.
      (gui-last-selected-text): New var, to replace x-last-selected-text.
      (gui-select-text): New GUI method.
      (gui-select-text): New function.
      (x-select-text): Define as obsolete alias.
      * lisp/term/common-win.el (x-select-enable-clipboard, x-select-text):
      Move to select.el.
      * lisp/simple.el (interprogram-cut-function): Change default to
      x-select-text.
      (interprogram-paste-function): Change default to `ignore'.
      * lisp/w32-common-fns.el (interprogram-cut-function): Don't modify.
      * lisp/term/x-win.el (interprogram-cut-function): Don't modify.
      (gui-select-text): Add method for x.
      * lisp/term/w32-win.el (gui-select-text): Add method for w32.
      * lisp/term/pc-win.el (x-last-selected-text): Remove, use
      gui-last-selected-text instead.
      (msdos-initialize-window-system): Don't set interprogram-cut-function.
      (gui-select-text): Add method for pc.
      * lisp/term/ns-win.el (ns-last-selected-text): Remove, use
      gui-last-selected-text instead.
      (gui-select-text): Add method for ns.
      (x-setup-function-keys): Don't change interprogram-cut-function.
      * lisp/loadup.el ("startup"): Load after "frame".
      * lisp/subr.el (package--builtin-versions, package--description-file):
      Move from startup.el.
      * lisp/startup.el (package--builtin-versions, package--description-file):
      Move to subr.el.
      (handle-args-function-alist, window-system-initialization-alist):
      Use gui-method-declare.
      (command-line): Use gui-method.
      * src/xselect.c (selection-converter-alist): Fix docstring.
      a8b36b95
  33. 05 Sep, 2014 1 commit
    • Martin Rudalics's avatar
      Add and use function horizontal-scroll-bars-available-p. · 510a4a4e
      Martin Rudalics authored
      * scroll-bar.el (horizontal-scroll-bars-available-p): New
      function.
      (horizontal-scroll-bar-mode): Rewrite using
      horizontal-scroll-bars-available-p.
      * menu-bar.el (menu-bar-showhide-scroll-bar-menu): Rewrite using
      horizontal-scroll-bars-available-p.
      510a4a4e
  34. 29 Jul, 2014 1 commit
    • Rüdiger Sonderfeld's avatar
      Fix Bug#18016. · 6bca885a
      Rüdiger Sonderfeld authored
      menu-bar.el (menu-bar-update-buffers): Update item list format
      in `buffers-menu' to confirm with changes to `get_keyelt'
      (2014-07-02T01:49:31Z!monnier@iro.umontreal.ca).  (Bug#18016)
      6bca885a
  35. 27 Jul, 2014 1 commit
    • Martin Rudalics's avatar
      Complete pixelwise frame/window resizing, add horizontal scrollbar support. · 3477e270
      Martin Rudalics authored
      * frame.el (frame-notice-user-settings): Rewrite using
      frame-initial-frame-tool-bar-height.
      * menu-bar.el (menu-bar-horizontal-scroll-bar)
      (menu-bar-no-horizontal-scroll-bar): New functions.
      (menu-bar-showhide-scroll-bar-menu): Add bindings for horizontal
      scroll bars.
      * scroll-bar.el (scroll-bar-lines)
      (set-horizontal-scroll-bar-mode)
      (get-horizontal-scroll-bar-mode, horizontal-scroll-bar-mode)
      (scroll-bar-horizontal-drag-1, scroll-bar-horizontal-drag)
      (scroll-bar-toolkit-horizontal-scroll): New functions.
      (horizontal-scroll-bar-mode)
      (previous-horizontal-scroll-bar-mode)
      (horizontal-scroll-bar-mode-explicit): New variables.
      (horizontal-scroll-bar-mode): New option.
      (toggle-horizontal-scroll-bar): Do something.
      (top-level): Bind horizontal-scroll-bar mouse-1.
      * startup.el (tool-bar-originally-present): Remove variable.
      (command-line): Don't set tool-bar-originally-present.
      * window.el (window-min-height): Update doc-string.
      (window--dump-frame): Dump horizontal scroll bar values.
      (window--min-size-1): Handle minibuffer window separately.
      Count in margins and horizontal scroll bar.  Return safe value
      iff IGNORE equals 'safe.
      (frame-windows-min-size): New function (used by frame resizing
      routines).
      (fit-frame-to-buffer, fit-window-to-buffer): Count in horizontal
      scroll bars.
      (window--sanitize-window-sizes): New function.
      (window-split-min-size): Remove.
      (split-window): Count divider-width.  Don't use
      `window-split-min-size' any more.  Reword error messages.
      Sanitize windows sizes after splitting.
      * buffer.h (struct buffer): New fields scroll_bar_height and
      horizontal_scroll_bar_type.
      * buffer.c (bset_scroll_bar_height)
      (bset_horizontal_scroll_bar_type): New functions.
      (Fbuffer_swap_text): Handle old_pointm field.
      (init_buffer_once): Set defaults for scroll_bar_height and
      horizontal_scroll_bar_type.
      (syms_of_buffer): New variables scroll_bar_height and
      horizontal_scroll_bar_type.
      * dispextern.h (window_part): Rename ON_SCROLL_BAR to
      ON_VERTICAL_SCROLL_BAR.  Add ON_HORIZONTAL_SCROLL_BAR.
      (set_vertical_scroll_bar): Remove prototype.
      (x_change_tool_bar_height): Add prototype.
      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
      (window_to_frame_vpos, update_frame_1, scrolling, init_display):
      Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
      and FRAME_LINES.
      (adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
      (update_window): Start mode_line_row->y after horizontal scroll
      bar.
      (change_frame_size_1): Call adjust_frame_size.
      (init_display): When changing the size of a tty frame do not
      pass height of menu bar.
      (Qframe_windows_min_size): New symbol.
      * frame.h (struct frame): List tool bar fields after menu bar
      fields.  Add official, total_lines, horizontal_scroll_bars,
      config_scroll_bar_height and config_scroll_bar_lines fields.
      (FRAME_HAS_HORIZONTAL_SCROLL_BARS)
      (FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
      (FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
      (FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
      (FRAME_WINDOWS_HEIGHT): New macros.
      (SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
      (FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
      (FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
      horizontal scroll bar.
      (frame_inhibit_resize, adjust_frame_size)
      (frame_windows_min_size): Add declarations.
      (Qscroll_bar_height, Qhorizontal_scroll_bars)
      (x_set_scroll_bar_default_height, x_set_left_fringe)
      (x_set_right_fringe, x_set_vertical_scroll_bars)
      (x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
      (x_set_scroll_bar_height): Add external declarations.
      * frame.c: (frame_inhibit_resize, frame_windows_min_size)
      (adjust_frame_size): New functions.
      (make_frame): Initial horizontal_scroll_bars field.  Use
      SET_FRAME_LINES.  Don't allow horizontal scroll bar in
      minibuffer window.
      (make_initial_frame, make_terminal_frame): No horizontal scroll
      bar in initial and terminal frames.  Use adjust_frame_size.
      (Fframe_total_cols): Fix doc-string.
      (Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
      (Fset_frame_height, Fset_frame_width, Fset_frame_size): Rewrite
      using adjust_frame_size.
      (Qscroll_bar_height, Qhorizontal_scroll_bars)
      (Qframe_windows_min_size): New symbols.
      (x_set_frame_parameters): Remove call of check_frame_size.
      (x_report_frame_params): Return scroll_bar_height value.
      (x_set_left_fringe, x_set_right_fringe): New functions.
      (adjust_frame_height, x_set_internal_border_width)
      (x_set_fringe_width): Remove.
      (x_set_internal_border_width, x_set_vertical_scroll_bars)
      (x_set_scroll_bar_width, x_set_right_divider_width)
      (x_set_bottom_divider_width): Rewrite using adjust_frame_size.
      (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): New
      functions.
      (x_figure_window_size): Rewrite to make frame display the
      expected number of lines.
      (Vdefault_frame_scroll_bars): Rewrite doc-string.
      (Vdefault_frame_horizontal_scroll_bars)
      (Vframe_initial_frame_tool_bar_height)
      (frame_inhibit_implied_resize): New variables.
      * fringe.c (compute_fringe_widths): Remove.
      * gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
      (xg_create_horizontal_scroll_bar)
      (xg_update_horizontal_scrollbar_pos)
      (xg_set_toolkit_horizontal_scroll_bar_thumb)
      (xg_get_default_scrollbar_height)
      (xg_clear_under_internal_border): Extern.
      * gtkutil.c (xg_frame_resized): Don't call
      do_pending_window_change.
      (xg_frame_set_char_size): Use adjust_frame_size.
      (style_changed_cb): Call update_theme_scrollbar_height and
      x_set_scroll_bar_default_height.
      (x_wm_set_size_hint): Don't call check_frame_size.
      (update_theme_scrollbar_height)
      (xg_get_default_scrollbar_height)
      (xg_create_horizontal_scroll_bar)
      (xg_update_horizontal_scrollbar_pos)
      (xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
      (xg_create_scroll_bar): Set horizontal slot of bar.
      (xg_initialize): Call update_theme_scrollbar_height.
      (xg_clear_under_internal_border): No more static.
      * insdel.c (adjust_suspend_auto_hscroll): New function.
      (adjust_markers_for_delete, adjust_markers_for_insert)
      (adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
      * keyboard.c (readable_events, discard_mouse_events)
      (make_lispy_event): Handle horizontal scroll bar click events.
      (Fsuspend_emacs): When changing the size of a tty frame do not
      pass height of menu bar.
      (Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
      (Qright, Qleftmost, Qrightmost): New symbols.
      * menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
      FRAME_LINES.
      * minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
      * nsfns.m (x_set_internal_border_width): New function.
      * nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
      Remove extended fringe code.
      (x_set_window_size, x_new_font): Don't call
      compute_fringe_widths.
      * term.c (Fresume_tty): When changing the size of a tty frame do
      not pass height of menu bar.
      (clear_tty_hooks, set_tty_hooks): Clear
      horizontal_scroll_bar_hook.
      (init_tty): Frame has no horizontal scroll bars.
      * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
      scroll_bar_before_handle, scroll_bar_horizontal_handle,
      scroll_bar_after_handle, scroll_bar_left_arrow,
      scroll_bar_right_arrow, scroll_bar_to_leftmost and
      scroll_bar_to_rightmost entries.
      (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
      (struct terminal): Add set_horizontal_scroll_bar_hook.
      * w32console.c (initialize_w32_display): Clear
      horizontal_scroll_bar_hook.
      * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
      FRAME_X_DISPLAY.
      (x_clear_under_internal_border, x_set_internal_border_width):
      New functions.
      (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.  Set
      windows_or_buffers_changed when adding the menu bar.
      (x_set_tool_bar_lines): Rewrite using adjust_frame_size.
      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
      (w32_createhscrollbar): New functions.
      (w32_createscrollbar): Rename to w32_createvscrollbar.
      (w32_createwindow): Init WND_HSCROLLBAR_INDEX.
      (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
      WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.  Add
      WM_EMACS_SHOWCURSOR.
      (w32_wnd_proc): Handle WM_HSCROLL case.  In WM_WINDOWPOSCHANGING
      case do not artificially impose WM size hints.  Handle
      WM_EMACS_SHOWCURSOR case.  Replace WM_EMACS_CREATESCROLLBAR case
      by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
      cases.
      (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
      WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
      (unwind_create_frame_1): Remove.
      (Fx_create_frame): Make both scrollbars the system standard
      width and height.  Use official field of frame structure to
      inhibit running window-configuration-change-hook.
      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
      pixelwise.  Handle frame's official field.
      (w32_frame_parm_handlers): Remove x_set_fringe_width
      entries. Add x_set_scroll_bar_height,
      x_set_horizontal_scroll_bars, x_set_left_fringe and
      x_set_right_fringe.
      * w32inevt.c (resize_event, maybe_generate_resize_event): Do not
      pass height of menu bar to change_frame_size.
      * w32menu.c (set_frame_menubar): Rewrite using
      frame_inhibit_resize.
      * w32term.h (struct w32_display_info): Add
      horizontal_scroll_bar_cursor and cursor_display_counter.
      (struct scroll_bar): Add horizontal.
      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
      (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): Define
      instead of WM_EMACS_CREATESCROLLBAR.
      (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
      WND_SCROLLBAR_INDEX.
      * w32term.c (horizontal_scroll_bar_min_handle)
      (horizontal_scroll_bar_left_border)
      (horizontal_scroll_bar_right_border): New integers.
      (x_set_frame_alpha): Replace x_highlight_frame by
      w32_focus_frame.
      (x_window_to_scroll_bar): New argument "type".  Update callers
      accordingly.
      (w32_set_horizontal_scroll_bar_thumb)
      (x_horizontal_scroll_bar_report_motion)
      (w32_set_horizontal_scroll_bar)
      (w32_horizontal_scroll_bar_handle_click)
      (x_horizontal_scroll_bar_report_motion): New functions.
      (w32_mouse_position): Discriminate horizontal and vertical
      scrollbar cases.
      (my_create_scrollbar): Replace with two new functions
      my_create_vscrollbar and my_create_hscrollbar.
      (x_scroll_bar_create): New argument "horizontal".  Update
      callers accordingly.
      (x_scroll_bar_remove, w32_condemn_scroll_bars)
      (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
      scroll bar case.
      (w32_read_socket): Handle WM_HSCROLL cae.
      (x_new_font): Don't recompute fringe widths.  Use
      frame_inhibit_resize.  Calculate new menu bar height iff we
      build without toolkit.  Always clear under internal border.
      (x_set_window_size): Don't check frame size or recompute
      fringes.  Reset fullscreen status before applying sizes.  Always
      resize as requested by pixelwise argument.  Don't call
      do_pending_window_change.
      (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
      (w32_initialize_display_info): Initialize dpyinfo's
      horizontal_scroll_bar_cursor entry.
      (w32_create_terminal): Add set_horizontal_scroll_bar_hook.
      (w32_initialize): Init horizontal_scroll_bar_min_handle and
      horizontal_scroll_bar_left_border.
      (w32fullscreen_hook): Intermittently resize window to normal
      when switching from fullscreen to maximized state.
      (run_window_configuration_change_hook): Don't run it if frame is
      not official yet.
      (unwind_change_frame): Remove.
      (Fset_window_configuration): Rewrite using frame's official field.
      * widget.c (set_frame_size): Don't call compute_fringe_widths.
      (EmacsFrameSetCharSize): Obey frame_inhibit_resize.
      * window.h (struct window): New fields old_pointm,
      horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
      scroll_bar_height and suspend_auto_hscroll.
      (wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
      New functions.
      (sanitize_window_sizes): Extern.
      (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
      (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
      (WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
      (WINDOW_CONFIG_SCROLL_BAR_LINES)
      (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): New
      macros.
      (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
      (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
      (WINDOW_VERTICAL_SCROLL_BAR_TYPE)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
      (WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
      (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
      (WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
      * window.c (wset_old_pointm, Fwindow_scroll_bar_height)
      (Fwindow_old_point, sanitize_window_sizes): New functions.
      (Qwindow_sanitize_window_sizes): New symbol.
      (window_body_height): Count in horizontal scroll bar.
      (set_window_hscroll, Fscroll_left, Fscroll_right): Set
      suspend_auto_hscroll slot.
      (Fwindow_inside_edges): Count fringes pixelwise.
      (coordinates_in_window, Fcoordinates_in_window_p): Consider
      horizontal scroll bar.
      (check_frame_size, adjust_window_margins): Remove functions and
      corresponding calls.
      (set_window_buffer): Initialize old_pointm and horizontal scroll
      bars.
      (temp_output_buffer_show): Reset hscroll related fields.
      Initialize old_pointm.
      (make_parent_window): Initialize old_pointm.
      (make_window): Initialize old_pointm, horizontal scroll bar type,
      and scroll bar height.
      (resize_frame_windows): Don't count top margin in new sizes.
      Don't use safe sizes when shrinking a frame; let the window
      manager do the clipping.
      (Fsplit_window_internal): Inherit horizontal scroll bar type and
      height.
      (Fdelete_window_internal): Unchain old_pointm marker.
      (window_scroll_pixel_based, Fscroll_other_window): Adjust
      old_pointm.
      (Fwindow_text_width, Fwindow_text_height): New argument
      "pixelwise".
      (struct saved_window): New fields, old_pointm, hscroll_whole,
      suspend_auto_hscroll, scroll_bar_height and
      horizontal_scroll_bar_type.
      (Fset_window_configuration, save_window_save): Set new fields of
      saved_window.
      (apply_window_adjustment): Don't call adjust_window_margins.
      (set_window_margins): Don't change margins if new sizes don't
      fit into window.
      (set_window_scroll_bars): New argument "horizontal_type".
      Handle horizontal scroll bars.  Don't change scroll bars if they
      don't fit into window.
      (Fset_window_scroll_bars): New argument "horizontal_type".
      (Fwindow_scroll_bars): Return values for horizontal scroll bars.
      (compare_window_configurations): Compare horizontal scroll bar
      settings.
      * xdisp.c (window_text_bottom_y, window_box_height): Count in
      horizontal scroll bar height.
      (pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
      instead of FRAME_LINES.
      (remember_mouse_glyph): Case ON_SCROLL_BAR changed to
      ON_VERTICAL_SCROLL_BAR.
      (with_echo_area_buffer): Initialize old_pointm.
      (with_echo_area_buffer_unwind_data): Store old_pointm values in
      vector.
      (unwind_with_echo_area_buffer): Handle old_pointm.
      (update_tool_bar): Set do_update when the tool bar window has at
      least one line (since this is what the user sets).
      (MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
      (redisplay_tool_bar): Return early when toolbar has zero lines.
      Call x_change_tool_bar_height.  Don't use max_tool_bar_height.
      (hscroll_window_tree): Handle suspension of auto_hscroll and
      old_pointm.
      (set_horizontal_scroll_bar): New function.
      (redisplay_window): Set ignore_mouse_drag_p when tool bar has
      more than one line.  Handle horizontal scroll bars.
      (note_mouse_highlight): Handle horizontal scrol bars.
      (expose_frame): Set dimensions of XRectangle from frame's text
      sizes.
      (Vvoid_text_area_pointer): Update doc-string.
      * xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
      (x_set_internal_border_width): New functions.
      (x_set_tool_bar_lines): Call x_change_tool_bar_height.
      (unwind_create_frame_1): Remove.
      (Fx_create_frame): Handle horizontal scroll bars.  Use official
      field of frame structure to inhibit running
      window-configuration-change-hook.
      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
      pixelwise.  Handle frame's official field.
      (x_frame_parm_handlers): Add x_set_scroll_bar_height,
      x_set_horizontal_scroll_bars, x_set_left_fringe,
      x_set_right_fringe.
      * xmenu.c (update_frame_menubar, free_frame_menubar): Use
      adjust_frame_size.
      * xterm.h (struct x_display_info): Add
      horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
      slots.
      (struct scroll_bar): Add horizontal slot.
      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
      (x_clear_under_internal_border): Remove.
      * xterm.c (XTmouse_position): Handle horizontal scroll bars.
      (x_window_to_scroll_bar): New argument TYPE.  Update callers.
      (x_send_scroll_bar_event, x_scroll_bar_create): New arguments
      HORIZONTAL.  Update callers.
      (horizontal_action_hook_id): New action hook id.
      (x_horizontal_scroll_bar_to_input_event)
      (x_create_horizontal_toolkit_scroll_bar)
      (xt_horizontal_action_hook)
      (x_set_toolkit_horizontal_scroll_bar_thumb)
      (XTset_horizontal_scroll_bar, x_net_wm_state)
      (x_horizontal_scroll_bar_report_motion): New functions.
      (xg_scroll_callback, x_scroll_bar_handle_click): Handle
      horizontal scroll bars.
      (SCROLL_BAR_HORIZONTAL_NAME): Define.
      (XTset_vertical_scroll_bar): Attempt to clear areas not covered
      by scroll bar.
      (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.  Handle
      horizontal scroll bars.
      (handle_one_xevent): Handle horizontal scroll bar events.  Call
      x_net_wm_state.
      (x_set_window_size_1, x_wm_set_size_hint): Don't call
      check_frame_size.
      (x_set_window_size): Don't call check_frame_size and
      do_pending_window_change.
      (x_term_init): Init horizontal_scroll_bar_cursor display info.
      (x_create_terminal): Add set_horizontal_scroll_bar_hook.
      (x_scroll_bar_set_handle): Add some checks when calling
      x_clear_area.
      3477e270