aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* identity, ignore: Make arg names more consistent with docsJuanma Barranquero2019-10-101-3/+3
| | | | | | | | * lisp/subr.el (ignore): Rename argument IGNORE to ARGUMENTS. * src/fns.c (Fidentity): Rename ARG to ARGUMENT. * doc/lispref/functions.texi (Calling Functions): Fix references.
* Silence compiler warningJuanma Barranquero2019-10-091-1/+1
| | | | * src/w32.c (acl_to_text): Add ATTRIBUTE_MALLOC.
* Implement offsets for absolute line numbersJuanma Barranquero2019-10-091-7/+36
| | | | | | | | | | | | | | * src/xdisp.c (syms_of_xdisp) <display-line-numbers-offset>: New variable to add an offset to absolute line numbers. (syms_of_xdisp) <display-line-numbers>: Mention it in docstring. (maybe_produce_line_number): Use it. * doc/emacs/display.texi (Display Custom): Document it. * etc/NEWS (value): Announce it. * lisp/frame.el: Add `display-line-numbers-offset' to list of variables which should trigger redisplay of the current buffer.
* Do not use tick faces beyond ZV (bug#37641)Juanma Barranquero2019-10-091-17/+21
| | | | | | * src/xdisp.c (maybe_produce_line_number): Check beyond_zv before using a tick face for the line number. Move all face selection code outside the loop that draws the line number.
* Make add-face-text-property not be destructive on stringsLars Ingebrigtsen2019-10-091-9/+23
| | | | | | | | | | * src/textprop.c (add_properties): Take a parameter to say whether it's allowed to be destructive or not (bug#20153). (add_text_properties_1): Ditto. (Fadd_face_text_property): Use this to say that it shouldn't modify face properties on strings destructively. This avoids altering the face properties of one string when altering them on a copy of the string.
* Fix crashes on TTY frames due to "C-x 6 f"Eli Zaretskii2019-10-082-2/+14
| | | | | | | | | | | * src/xdisp.c (redisplay_internal): Revert the recent change regarding TTY frames' garbaged flag. It is not needed. * src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): When returning due to mismatch between the desired and actual dimensions of the glyph matrix, set the frame's garbaged flag for TTY frames. This avoids crashes when we are later called from redisplay. Reported by Ergus <spacibba@aol.com>.
* Fix aborts when opening a new font after face-cache resetEli Zaretskii2019-10-081-0/+4
| | | | | | * src/font.c (font_open_for_lface): Make sure the default face is realized before using its height for the font to be open. (Bug#37637)
* Fix a crash in TTY sessions caused by recent changesEli Zaretskii2019-10-071-3/+5
| | | | | | * src/xdisp.c (redisplay_internal): Fix crashes in TTY sessions when turning on tab-mode. Reported by Ergus <spacibba@aol.com>.
* Fix infloop in redisplay caused by a recent changeEli Zaretskii2019-10-071-1/+5
| | | | | | * src/xdisp.c (redisplay_internal): Avoid inflooping due to a frame's garbaged flag being set after update_frame. Reported by Michael Heerdegen <michael_heerdegen@web.de>.
* Feval_buffer doc string lexical-binding clarificationLars Ingebrigtsen2019-10-071-0/+6
| | | | | * src/lread.c (Feval_buffer): Mention that the lexical-binding variable is ignored in the doc string (bug#20139).
* Fix port of file-acl errno checking to non-GNUPaul Eggert2019-10-061-1/+1
| | | | | | I had misinterpreted the private email from Ashish Shukla. * src/fileio.c (Ffile_acl): Fix typo in previous change by negating the call to acl_errno_valid.
* Fix the colours on Motif horizontal scroll barsLars Ingebrigtsen2019-10-071-2/+4
| | | | | | * src/xterm.c (x_create_horizontal_toolkit_scroll_bar): Use the same foreground/background colours as the vertical scroll bar (bug#37359).
* Allow using last_tab_bar_item on no-x builds.Juri Linkov2019-10-071-2/+0
| | | | | * src/frame.h (struct frame): Remove HAVE_WINDOW_SYSTEM around last_tab_bar_item.
* Set alternate faces for some line numbers (bug#27734)Juanma Barranquero2019-10-061-0/+24
| | | | | | | | | | | | | | | | | | | | | | * lisp/faces.el (line-number-major-tick, line-number-minor-tick): New faces. * lisp/cus-start.el (display-line-numbers-major-tick) (display-line-numbers-minor-tick): Add customization info. * lisp/frame.el: Add `display-line-numbers-major-tick' and `display-line-numbers-minor-tick' to list of variables which should trigger redisplay of the current buffer. * src/xdisp.c (syms_of_xdisp) <display-line-numbers-major-tick> <display-line-numbers-major-tick>: Defvar new options. (syms_of_xdisp) <line-number-major-tick, line-number-minor-tick>: Defsym new faces. (maybe_produce_line_number): Use new faces for line numbers that are multiple of `display-line-numbers-major-tick' and `display-line-numbers-minor-tick'. * etc/NEWS (value): Announce new feature. * doc/emacs/display.texi (Display Custom): Describe it. Wording by Robert Pluim <rpluim@gmail.com>
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacsEli Zaretskii2019-10-061-1/+1
|\
| * Port file-acl errno checking to non-GNUPaul Eggert2019-10-061-1/+1
| | | | | | | | | | | | | | Problem reported privately for FreeBSD 12 by Ashish Shukla. * src/fileio.c (Ffile_acl): Treat EINVAL etc. like ENOTSUP if acl_get_file fails, to port to FreeBSD 12 and other non-GNU platforms.
* | Support mouse clicks on tab bar on TTY framesEli Zaretskii2019-10-064-17/+146
|/ | | | | | | | | | | | | | | | | This for now doesn't work on GPM. * src/xdisp.c (display_tab_bar): Make the loop over tab-bar items more efficient. (tab_bar_item_info, tool_bar_item_info): Correct data type for CHARPOS. (tty_get_tab_bar_item, tty_handle_tab_bar_click): New functions. (note_mouse_highlight): Handle help-echo of tab-bar tabs on TTY frames. * src/w32inevt.c (do_mouse_event): Call tty_handle_tab_bar_click to process mouse clicks on the tab bar. * src/termchar.h (tty_handle_tab_bar_click): Add prototype. * src/w32console.c (w32con_set_terminal_modes): Disable Quick Edit mode on entry, to make sure mouse events get reported to us.
* Improve documentation for year-zero issuesPaul Eggert2019-10-051-2/+2
| | | | | | | | | | | | * doc/emacs/calendar.texi (Calendar Systems) * doc/lispref/os.texi (Time Conversion): Prefer "BC" to "B.C." since the documentation generally uses "BC". * doc/misc/emacs-mime.texi (time-date): * lisp/calendar/time-date.el (date-to-day, time-to-days): In the doc string, state the day origin more clearly, and more consistently with the rest of the documentation. * src/timefns.c (Fdecode_time): State the year origin in the doc string.
* Fix display of cursor in obscure use case on MS-WindowsEli Zaretskii2019-10-051-0/+7
| | | | | | * src/xdisp.c (redisplay_internal): Detect when the frame becomes garbaged inside the call to update_frame, and redraw the frame in that case. (Bug#37579)
* * src/fns.c (Flocale_info): Avoid fixnum overflow under ASan.Philipp Stephani2019-10-051-2/+8
|
* * src/pdumper.c (dump_buffer): Update structure hash.Philipp Stephani2019-10-051-1/+1
|
* Minor style tweaks for recent tab changesPaul Eggert2019-10-044-68/+64
| | | | | | | | | | | | | | | | | | | * src/dispextern.h (MR_PARTIALLY_VISIBLE_AT_TOP): * src/window.c (Fwindow_mode_line_height) (Fwindow_header_line_height, Fwindow_tab_line_height) (Fwindow_right_divider_width, Fwindow_bottom_divider_width) (Fwindow_scroll_bar_width, Fwindow_scroll_bar_height): (Fset_window_configuration, Fcurrent_window_configuration): Omit unnecessary parens. * src/dispextern.h (CURRENT_MODE_LINE_HEIGHT) (CURRENT_HEADER_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT): Add parens needed to make these macros function-like. * src/window.c (window_resize_check): * src/window.h (WINDOW_TAB_BAR_P): * src/xdisp.c (tab_bar_item_info): Reindent. * src/window.c (window_wants_mode_line) (window_wants_header_line, window_wants_tab_line): Simplify (a && b ? 1 : 0) to (a && b).
* Add tests for secure-hash and improve doc string (Bug#37420)Stefan Kangas2019-10-041-2/+7
| | | | | | * src/fns.c (Fsecure_hash_algorithms): Fix typo. (Fsecure_hash): Add algorithm list to doc string. * test/src/fns-tests.el (test-secure-hash): New test.
* * src/w32inevt.c: Take into account FRAME_TAB_BAR_LINES.Juri Linkov2019-10-021-2/+4
| | | | | * src/w32inevt.c (resize_event, maybe_generate_resize_event): Subtract FRAME_TAB_BAR_LINES from FRAME_MENU_BAR_LINES.
* Fix MS-Windows error when a directory on PATH doesn't existEli Zaretskii2019-10-021-0/+4
| | | | | * src/w32.c (faccessat): Support more MS-Windows native error codes that should be translated to ENOENT. (Bug#37576)
* Merge branch 'feature/tabs'Juri Linkov2019-10-0128-150/+2501
|\
| * Remove unused code and reformat to 70 columns.feature/tabsJuri Linkov2019-10-0115-223/+110
| |
| * Small fixes. Bind [tab-line mouse-1] to mouse-select-window.Juri Linkov2019-09-251-1/+5
| |
| * Revert an attempt to implement a non‐native tab bar on NS.Juri Linkov2019-09-255-559/+14
| |
| * Improve customizability and better tab separators.Juri Linkov2019-09-221-1/+1
| | | | | | | | | | | | | | * lisp/tab-bar.el (tab-bar-tabs-function): New defvar. * lisp/tab-line.el (tab-line-tab-name-function) (tab-line-tabs-function): New defvars.
| * Take into account FRAME_TAB_BAR height in more places.Juri Linkov2019-09-225-24/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispnew.c (handle_window_change_signal, init_display_interactive): * src/frame.c (make_terminal_frame, Fmake_terminal_frame): * src/keyboard.c (Fsuspend_emacs): * src/term.c (Fresume_tty): * src/xterm.c (x_check_fullscreen): Subtract FRAME_TAB_BAR_LINES. * src/xterm.c (x_new_font): Set FRAME_TAB_BAR_HEIGHT. (x_new_font, x_check_fullscreen, x_set_window_size_1) (x_set_window_size, x_wm_set_size_hint): Add FRAME_TABBAR_HEIGHT.
| * Try to fix macOS and Windows issues.Juri Linkov2019-09-163-42/+13
| |
| * Use images for new/close buttons in tab-bar and tab-line.Juri Linkov2019-09-151-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/images/tabs/new.xpm: * etc/images/tabs/close.xpm: New files. * lisp/tab-bar.el (tab-bar-separator): New face. (tab-bar-separator, tab-bar-button-new, tab-bar-button-close): Use display property with images in default values. * lisp/tab-line.el (tab-line-button-new, tab-line-button-close): Use display property with images in default values. * src/xdisp.c (tab_bar_item_info): Add new arg close_p and set it to the value of property `close' at charpos. (get_tab_bar_item): Add new arg close_p. (handle_tab_bar_click): Add ctrl_modifier when close_p is non-nil. (Fdump_tab_bar_row): Fix crash for non-X builds.
| * Fix assertion violations due to non-ASCII text in tabsJuri Linkov2019-09-151-3/+5
| | | | | | | | | | | | | | | | | | * src/xdisp.c (tab_bar_height, redisplay_tab_bar) (display_tab_bar): If the Lisp string to be displayed in the tab-bar window is multibyte, tell the display engine to treat it as multibyte, instead of relying on the initial determination by init_iterator (which is based on the multibyteness of the current buffer). (Bug#37385)
| * Small fixes for tty and w32.Juri Linkov2019-09-081-2/+2
| | | | | | | | | | | | | | * lisp/menu-bar.el (showhide-tab-bar): Visible on tty too. * lisp/tab-bar.el (tab-bar-mode): Add binding [(control shift tab)] for w32. * lisp/tab-line.el (tab-line-add-tab): Use tmm-prompt for buffer-menu on tty. * src/w32term.c (w32_read_socket): Fix tool-bar clicks.
| * Don't use hook pre-redisplay-functions. Set buffer-local tab-line-format.Juri Linkov2019-09-054-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/tab-line.el (tab-line-format): Move to C. (tab-line-update-window-parameter): Remove function. (global-tab-line-mode): Set the default value of tab-line-format. * src/buffer.c (syms_of_buffer): Define buffer-local variable tab-line-format. * src/buffer.h (struct buffer): Add tab_line_format_. * src/window.c (window_wants_tab_line): * src/xdisp.c (pos_visible_p, display_mode_lines): Check for buffer-local tab_line_format.
| * Text-based nox builds compiled without X window supportJuri Linkov2019-09-042-110/+130
| |
| * Small fix for text-mode displayJuri Linkov2019-09-041-4/+2
| |
| * Try to fix compilation errors on macOSJuri Linkov2019-09-033-16/+16
| |
| * Text-mode display of the tab-bar and emulation of clicking on a tty.Juri Linkov2019-09-032-2/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/tab-bar.el (tab-bar-mouse): New command bound to mouse-1 on [tab-bar]. * lisp/xt-mouse.el (xterm-mouse-event): Use `tab-bar' when clicking on the tab-bar that is on the second row below menu-bar. * src/frame.c (set_tab_bar_lines): New function. (frame_windows_min_size): Add FRAME_TAB_BAR_LINES. (make_initial_frame): Call set_tab_bar_lines. (store_frame_param): Call set_tab_bar_lines for Qtab_bar_lines prop. (Fframe_parameters): Call store_in_alist for Qtab_bar_lines. * src/xdisp.c (display_tab_bar): New function. (redisplay_window): Call display_tab_bar when `FRAME_WINDOW_P (f)' is NULL on a tty.
| * Try to add more tab-bar support on macosJuri Linkov2019-09-024-13/+601
| |
| * Try to add more tab-bar support on WindowsJuri Linkov2019-09-023-0/+77
| |
| * * src/nsterm.m: Fix arguments to window_from_coordinates function callJuri Linkov2019-09-011-1/+1
| | | | | | | | Thanks to Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org>
| * Fixes to build on WindowsMartin Rudalics2019-09-013-0/+90
| | | | | | | | | | | | | | | | * src/w32fns.c (w32_set_tab_bar_lines, w32_change_tab_bar_height): New functions. * src/w32term.c (w32_create_terminal): Set change_tab_bar_height_hook to w32_change_tab_bar_height.
| * Frame-local tab-bar and window-local tab-line.Juri Linkov2019-08-3123-139/+2214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Add 'tab-bar-mode' and 'global-tab-line-mode'. * etc/TODO: Remove tab-related items. * lisp/cus-start.el: Add tab-bar-mode, tab-bar-max-label-size. * lisp/frame.el (frame-notice-user-settings): handle tab-bar-lines. * lisp/loadup.el: Load "tab-bar". * lisp/menu-bar.el (menu-bar-options-save): Add tab-bar-mode. (menu-bar-showhide-menu): Define showhide-tab-bar. * lisp/startup.el (tab-bar-images-pixel-height): New defconst. (command-line): Reset tab-bar-mode. (x-apply-session-resources): Add "tabBar", "TabBar". * lisp/subr.el (read-key): Add tab-bar. * lisp/tab-bar.el: New file. * lisp/tab-line.el: New file. * lisp/window.el (window--dump-frame): Add tab-bar-height. * src/dispextern.h (enum window_part): Add ON_TAB_LINE. (struct glyph_matrix): Add tab_line_p. (struct glyph_row): Add tab_line_p. (MATRIX_TAB_LINE_ROW): New macro. (MATRIX_FIRST_TEXT_ROW): Handle more mode lines. (MR_PARTIALLY_VISIBLE_AT_TOP): Add WINDOW_TAB_LINE_HEIGHT. (MATRIX_TAB_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT) (DESIRED_TAB_LINE_HEIGHT): New macros. (enum face_id): Add TAB_BAR_FACE_ID and TAB_LINE_FACE_ID. (struct it): Add tab_line_p. (tab_bar_item_idx, tab_bar_item_image): New enums. (DEFAULT_TAB_BAR_LABEL_SIZE, DEFAULT_TAB_BAR_BUTTON_MARGIN) (DEFAULT_TAB_BAR_BUTTON_RELIEF, DEFAULT_TAB_BAR_IMAGE_HEIGHT): New constants. * src/dispnew.c (adjust_glyph_matrix): Use window_wants_tab_line. (shift_glyph_matrix): Add WINDOW_TAB_LINE_HEIGHT. (clear_current_matrices, clear_desired_matrices): Call clear_glyph_matrix on tab_bar_window. (blank_row): Add WINDOW_TAB_LINE_HEIGHT. (required_matrix_height): Change 2 to 3. (fake_current_matrices): Reset tab_line_p. (adjust_frame_glyphs_for_window_redisplay): Handle tab_bar_window. Add FRAME_TAB_BAR_HEIGHT and FRAME_TAB_BAR_LINES. (free_glyphs): Handle tab_bar_window. (update_frame): Handle tab_bar_window. (update_window): Handle row->tab_line_p. (scrolling_window): Change arg type from bool to int. Change header_line_p to tab_line_p. (buffer_posn_from_coords): Add window_wants_tab_line. (mode_line_string): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE. * src/frame.c (frame_default_tab_bar_height): New internal variable. (adjust_frame_size): Handle tab_bar_window. (make_frame): Reset tab_bar_redisplayed, tab_bar_resized and last_tab_bar_item. (Ftab_bar_pixel_width): New function. (frame_parms): Add tab-bar-lines. (gui_figure_window_size): Add new arg tabbar_p. (syms_of_frame): Add Qtab_bar_size, Qupdate_frame_tab_bar, Qfree_frame_tab_bar, Qtab_bar_lines, Stab_bar_pixel_width. Add Qtab_bar_lines to frame_inhibit_implied_resize. (tab-bar-mode): New variable. * src/frame.h (GCALIGNED_STRUCT): Add tab_bar_window, desired_tab_bar_string, current_tab_bar_string. (GCALIGNED_STRUCT): Add tab_bar_items, last_tab_bar_item, minimize_tab_bar_window_p, tab_bar_redisplayed, tab_bar_resized, tab_bar_lines, tab_bar_height, n_tab_bar_rows, n_tab_bar_items. (fset_tab_bar_items, fset_tab_bar_window) (fset_current_tab_bar_string, fset_desired_tab_bar_string): New inlines. (FRAME_TAB_BAR_LINES, FRAME_TAB_BAR_HEIGHT): New macros. (FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT): Use FRAME_TAB_BAR_LINES. * src/fringe.c (draw_fringe_bitmap_1, update_window_fringes): Add WINDOW_TAB_LINE_HEIGHT. * src/gtkutil.c (xg_frame_set_char_size): Add FRAME_TABBAR_WIDTH. (x_wm_set_size_hint): Add FRAME_TABBAR_WIDTH. * src/keyboard.c (read_char): Handle Qtab_bar. (kbd_buffer_get_event): Handle TAB_BAR_EVENT. (make_lispy_position): Add WINDOW_TAB_LINE_HEIGHT. Handle TAB_BAR_EVENT. (tab_bar_items_vector, tab_bar_item_properties, ntab_bar_items): New internal variables. (tab_bar_items, process_tab_bar_item, set_prop_tab_bar) (parse_tab_bar_item, init_tab_bar_items, append_tab_bar_item): New functions. (read_char_x_menu_prompt, read_key_sequence): Handle Qtab_bar. (tab-bar-separator-image-expression): New variable. * src/keymap.c (syms_of_keymap): Add Qtab_bar and Qtab_line. * src/menu.c (x_popup_menu_1, Fx_popup_dialog): Handle Qtab_bar. * src/termhooks.h (enum event_kind): Add TAB_BAR_EVENT. (GCALIGNED_STRUCT): Add change_tab_bar_height_hook. * src/w32fns.c (w32_frame_parm_handlers): Add w32_set_tab_bar_lines. * src/w32term.c (w32_draw_window_cursor): Add WINDOW_TAB_LINE_HEIGHT. * src/window.c (window_body_height): Add WINDOW_TAB_LINE_HEIGHT. (Fwindow_tab_line_height): New function. (coordinates_in_window): Use window_wants_tab_line with CURRENT_TAB_LINE_HEIGHT. (window_relative_x_coord): Add ON_TAB_LINE. (Fcoordinates_in_window_p): Add ON_TAB_LINE. (window_from_coordinates): Add new arg tab_bar_p. (Fwindow_line_height): Use window_wants_tab_line with WINDOW_TAB_LINE_HEIGHT. (Fwindow_lines_pixel_dimensions): Add WINDOW_TAB_LINE_HEIGHT. (make_window): Set tab_line_height to -1. (window_wants_tab_line): New function. (window_internal_height): Use window_wants_tab_line. (window_scroll_pixel_based): Add WINDOW_TAB_LINE_HEIGHT. (Frecenter): Set minimize_tab_bar_window_p to 1. (GCALIGNED_STRUCT): Add frame_tab_bar_lines and frame_tab_bar_height. (Fcurrent_window_configuration): Set frame_tab_bar_lines and frame_tab_bar_height. (set_window_scroll_bars): Add WINDOW_TAB_LINE_HEIGHT. (syms_of_window): Add Qtab_line_format and Swindow_tab_line_height. * src/window.h (GCALIGNED_STRUCT): Add tab_line_height. (WINDOW_TAB_BAR_P, WINDOW_TAB_LINE_HEIGHT, WINDOW_TAB_LINE_LINES): New macros. (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y, WINDOW_TAB_LINE_HEIGHT): Add WINDOW_TAB_BAR_P. * src/xdisp.c (window_box_height): Add window_wants_tab_line with MATRIX_TAB_LINE_ROW and CURRENT_TAB_LINE_HEIGHT. (pos_visible_p): Use window_wants_tab_line. Add WINDOW_TAB_LINE_HEIGHT. (get_glyph_string_clip_rects): Add WINDOW_TAB_LINE_HEIGHT. (get_phys_cursor_geometry): Add WINDOW_TAB_LINE_HEIGHT. (remember_mouse_glyph): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE. (init_iterator): Use MATRIX_TAB_LINE_ROW for TAB_LINE_FACE_ID. Add WINDOW_TAB_LINE_HEIGHT. Add window_wants_tab_line. (Fwindow_text_pixel_size): Add WINDOW_TAB_LINE_HEIGHT. (prepare_menu_bars): Call update_tab_bar. (update_tab_bar, build_desired_tab_bar_string) (display_tab_bar_line, tab_bar_height, Ftab_bar_height) (redisplay_tab_bar, tab_bar_item_info, get_tab_bar_item) (handle_tab_bar_click, note_tab_bar_highlight): New functions. (compute_window_start_on_continuation_line): Use window_wants_tab_line. (try_cursor_movement): Use window_wants_tab_line with CURRENT_TAB_LINE_HEIGHT. (redisplay_window): Use window_wants_tab_line with CURRENT_TAB_LINE_HEIGHT. (try_window_reusing_current_matrix): Use window_wants_tab_line with WINDOW_TAB_LINE_HEIGHT. (Fdump_tab_bar_row): New function. (compute_line_metrics): Add WINDOW_TAB_LINE_HEIGHT. (display_line): Use window_wants_tab_line. (display_mode_line): Set tab_line_p to true if face_id is TAB_LINE_FACE_ID. (Fformat_mode_line): Handle Qtab_line and Qtab_bar. (gui_clear_end_of_line): Add WINDOW_TAB_LINE_HEIGHT. (erase_phys_cursor): Use WINDOW_TAB_LINE_HEIGHT. (show_mouse_face): Use tab_bar_window. (note_mode_line_or_margin_highlight): Use MATRIX_TAB_LINE_ROW for area ON_TAB_LINE. (note_mouse_highlight): Call note_tab_bar_highlight, (expose_frame): Handle tab_bar_window. (syms_of_xdisp): Add Sdump_tab_bar_row and Stab_bar_height. (auto-resize-tab-bars, auto-raise-tab-bar-buttons) (tab-bar-border, tab-bar-button-margin, tab-bar-button-relief) (tab-bar-max-label-size): New variables. * src/xfaces.c (lookup_basic_face): Add TAB_LINE_FACE_ID and TAB_BAR_FACE_ID. (syms_of_xfaces): Define Qtab_bar and Qtab_line. * src/xfns.c (x_set_tab_bar_lines, x_change_tab_bar_height): New functions. (xic_set_statusarea): Add FRAME_TABBAR_TOP_HEIGHT. (frame_geometry): Add FRAME_TAB_BAR_HEIGHT and Qtab_bar_size. * src/xterm.c (x_draw_image_relief): Use tab_bar_button_relief. (x_draw_image_relief): Use TAB_BAR_FACE_ID. (handle_one_xevent): Handle tab_bar_window. (x_set_window_size_1): Add FRAME_TABBAR_WIDTH. (x_create_terminal): Set change_tab_bar_height_hook. * src/xterm.h (struct x_output): Add tabbar_top_height, tabbar_bottom_height, tabbar_left_width, tabbar_right_width tabbar_widget, tabbar_in_hbox, tabbar_is_packed. (FRAME_TABBAR_TOP_HEIGHT): Add FRAME_TABBAR_TOP_HEIGHT, FRAME_TABBAR_BOTTOM_HEIGHT, FRAME_TABBAR_HEIGHT, FRAME_TABBAR_LEFT_WIDTH, FRAME_TABBAR_RIGHT_WIDTH, FRAME_TABBAR_WIDTH.
* | Bump up max_specpdl_size to 1600Juanma Barranquero2019-10-011-1/+1
| | | | | | | | | | * src/eval.c (init_eval_once): Set max_specpdl_size to 1600. * doc/lispref/variables.texi (Local Variables): Document it.
* | Fix quoting in gnutls.c comments and stringsEli Zaretskii2019-09-301-15/+13
| | | | | | | | | | | | | | * src/gnutls.c (gnutls_make_error, emacs_gnutls_global_init) (Fgnutls_symmetric_encrypt, Fgnutls_symmetric_decrypt) (Fgnutls_hash_mac, Fgnutls_hash_digest): Fix quoting in doc strings and comments.
* | Mention locale-related complications in format-time-string doc stringLars Ingebrigtsen2019-09-301-2/+6
| | | | | | | | | | * src/timefns.c (Fformat_time_string): Mention that the width in specifiers like %NX is often in bytes, not characters (bug#20258).
* | * src/timefns.c (Fdecode_time): Improve doc string.Paul Eggert2019-09-291-3/+3
| |
* | Fix display of box around imagesEli Zaretskii2019-09-271-0/+10
| | | | | | | | | | * src/xdisp.c (face_before_or_after_it_pos): Handle correctly when we are called with it->bidi_it.first_elt set. (Bug#17114)