aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispnew.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; Remove stale commentary in dispnew.c.Basil L. Contovounesios2026-02-171-3/+0
| | | | | * src/dispnew.c: Remove commentary that used to relate to WINDOW_TO_FRAME_VPOS and WINDOW_TO_FRAME_HPOS.
* ; * src/dispnew.c (box_default): Shut up compilation warnings (bug#80386).Eli Zaretskii2026-02-121-1/+1
|
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* December 2025 spelling fixesPaul Eggert2025-12-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* Fix handling of border face on tty child frames (bug#80043)Gerd Möllmann2025-12-221-19/+46
| | | | | | | | * src/dispnew.c (box_from_display_table, box_default, box_glyph): New functions, extracted from produce_box_glyphs. (box_from_display_table): Merge face nwith glyph's face. (box_default): Lookup face. (produce_box_glyphs): Use new functions.
* Realloc less often in adjust_glyph_matrix (bug#77961)Gerd Möllmann2025-04-221-7/+11
| | | | | * src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the glyph matrix got wider or taller.
* More thorough fix for image slices on mode/header-lineEli Zaretskii2025-04-021-1/+5
| | | | | | | | * src/xdisp.c (note_mode_line_or_margin_highlight): Remove correction of DX and DY due to image slices, as this is now done in 'mode_line_string'. * src/dispnew.c (mode_line_string): Make DX and DY account for image slices. (Bug#77429)
* ; * src/dispnew.c (check_window_matrix_pointers): Fix last change.Eli Zaretskii2025-03-231-0/+2
|
* Avoid rare segfaults in 'check_matrix_pointers'Eli Zaretskii2025-03-231-9/+13
| | | | | * src/dispnew.c (check_window_matrix_pointers): No-op if the window's frame not ready yet. (Bug#77200)
* Avoid rare segfaults due to crazy creation of new child framesEli Zaretskii2025-03-221-2/+7
| | | | | | * src/dispnew.c (combine_updates, combine_updates_for_frame): Skip frames and child frames that were not yet completely made. (Bug#77046)
* Fix and document frame parameters for text terminals and child framesMartin Rudalics2025-03-221-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/frame.c (Fmake_frame_invisible): In doc-string describe effect on text terminals. Set FRAME correctly when called with nil value. Make frame invisible before calling mru_rooted_frame or next_frame. (Ficonify_frame): Make it work for child frames on text terminals (Fmodify_frame_parameters): Make value 'icon' for 'visibility' work for child frames. * src/dispnew.c (frame_ancestors_visible_p): New function. (frames_with_root): If VISIBLE_ONLY is non-nil, return only frames whose ancestors are all visible to avoid that redisplay draws visibly orphaned child frames. * doc/lispref/frames.texi (Frames): Move descriptions of top frame and 'tty-top-frame' here. (Frame Layout): Mention that on text terminals the outer border can be emulated by setting the 'undecorated' frame parameter. (Frame Position, Frame Parameters, Window Frame Parameters) (Position Parameters, Size Parameters): Rewrite sections dealing with the handling of frame parameters in text terminals. (Layout Parameters): Move description of 'undecorated' parameter here. Clarify semantics of 'menu-bar-lines' parameter. (Frame Interaction Parameters): Move description of 'visibility' parameter here. Mention which parameters are not implemented on text terminals. (Mouse Dragging Parameters): Describe how these work on text terminals. (Visibility of Frames): Rewrite section. (Raising and Lowering): Describe for text terminals. (Child Frames): Fix description of 'iconify-child-frame' option.
* ; * src/dispnew.c (adjust_glyph_matrix): Restore lost comment.Eli Zaretskii2025-03-171-0/+2
|
* ; * src/dispnew.c (adjust_glyph_matrix): Add comment (bug#77039).Eli Zaretskii2025-03-171-0/+2
|
* Make sure to initialize glyph::frame to NULL (bug#77039)Gerd Möllmann2025-03-161-1/+2
| | | | | * src/dispnew.c (adjust_glyph_matrix): Clear glyph memory when enlarging window-system window glyph matrices.
* Fix 'etc/DOC' for a few functions/variablesEli Zaretskii2025-03-041-1/+1
| | | | | | | | | * src/term.c (Ftty_frame_at): * src/menu.c (syms_of_menu) <x-popup-menu-function>: * src/dispnew.c (Fredisplay): Fix "doc:". The extra blank was preventing 'make-docfile' from recognizing the functions and variables and extracting their documentation to 'etc/DOC'. (Bug#76722)
* * src/dispnew.c (rect_intersect): Fix a typo (bug#76592)Gerd Möllmann2025-02-271-1/+1
|
* Enforce redisplay when deleting a child frame (bug#76406)Gerd Möllmann2025-02-231-3/+13
| | | | | | * src/term.c (tty_free_frame_resources): When deleting a child mark its root frame to garbaged. * src/dispnew.c (prepare_desired_root_row): Add a check for GLYPH_DEBUG.
* ; Fix typosStefan Kangas2025-02-221-1/+1
|
* Hide cursor based on tty frame's `cursor-type'Gerd Möllmann2025-02-181-0/+8
| | | | | * src/dispnew.c (terminal_cursor_magic): if selected-frame has `(cursor-type . nil)' parameter.
* Fix child coordinate calculation (bug#76321)Gerd Möllmann2025-02-171-10/+10
| | | | | * src/dispnew.c (rect_intersect): Simplify. (copy_child_glyphs): Compute child coordinates using child_xy.
* Fix handling of visibility on tty frames (Bug#76031)Martin Rudalics2025-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/frame.h (FRAME_REDISPLAY_P): Remove. Use the new function frame_redisplay_p instead. Extern frame_redisplay_p. * src/frame.c (frame_redisplay_p): New function to replace FRAME_REDISPLAY_P macro. (make_terminal_frame): Don't tinker with frame visibility and don't make the new frame the terminal's top frame. (do_switch_frame): Make sure frame switched to and any of its ancestors are visible. Don't reset the visibility of other frames. (other_frames): Do not assume tty frames are by default visible. (Fmake_frame_invisible): When making the selected tty frame invisible, explicitly select the next visible frame. * src/dispnew.c (Fredraw_display): Use frame_redisplay_p instead of FRAME_REDISPLAY_P. * src/xdisp.c (clear_garbaged_frames, echo_area_display) (prepare_menu_bars, redisplay_internal, display_and_set_cursor) (gui_clear_cursor): Use frame_redisplay_p instead of FRAME_REDISPLAY_P. * src/keyboard.c (tty_read_avail_input): When storing an event and the selected frame is a child frame whose root is its terminal's top frame, set the frame_or_window slot to the child frame since otherwise the next switch frame event will select the top frame instead.
* Fix mouse pointer inside mouse-face on text with 'pointer' propertyEli Zaretskii2025-02-021-3/+0
| | | | | | | | * src/dispnew.c (gui_update_window_end): Don't consider mouse face overwritten. * src/xdisp.c (show_mouse_face): Accept an additional argument; redefine the mouse cursor only if that argument is 'true'. All callers changed. (Bug#75931)
* Fix hiding tty cursor for overlapping childrenGerd Möllmann2025-02-021-4/+6
| | | | | * src/dispnew.c (is_cursor_obscured): If selected frame is in the z-order of the root frame, use that, otherwise use the root frame.
* Further fixes for cursor positioning (bug#75056)Gerd Möllmann2025-01-301-16/+20
| | | | | | | | * src/dispnew.c (write_matrix): Don't set the cursor here. Parameter to set the cursor or not removed. (combine_updates_for_frame): Call tty_set_cursor here, depending on whether or not the selected frame is related to the updated frame. (update_frame_with_menu): Adapt to change of write_matrix.
* Replace two macros with functions in dispnew.c (bug#75056)Gerd Möllmann2025-01-301-19/+4
| | | | | | | * src/dispnew.c (WINDOW_TO_FRAME_VPOS, WINDOW_TO_FRAME_VPOS): Macros removed. (window_to_frame_vpos, window_to_frame_vpos): Always define, and use them instead of the removed macros.
* Don't use selected frame in tty_set_cursor (bug#75056)Gerd Möllmann2025-01-301-5/+3
| | | | | * src/dispnew.c (tty_set_cursor): Add frmae parameter. (write_matrix): Pass to the updated frame to tty_set_cursor.
* Display separators on tty menus with display table entriesGerd Möllmann2025-01-261-0/+7
| | | | | | | | | | | | | | | | | | | | | | | * src/xdisp.c (display_tty_menu_separator): Lookup separator char in standard-display-table, make a string, and display that using display_string. * src/xdisp.c (display_tty_menu_separator_char): New function. (display_tty_menu_separator): Use it. * lisp/disp-table.el (display-table): Increase from 12 to 18. (box-double-vertical, box-double-horizontal, box-double-down-right) (box-double-down-left, box-double-up-right, box-double-up-left): New symbols for extra slots. (display-table-slot, set-display-table-slot): Change doc string. (describe-display-table): Describe new slots. (standard-display-unicode-special-glyphs): Define new slots. * src/disptab.h (DISP_TABLE_P): Add enumerators. (DISP_TABLE_EXTRA_SLOTS): Define based on enum box. * src/dispnew.c (produce_box_glyphs): Add new enumerators to switch to make it exhaustive. * src/xdisp.c (display_tty_menu_separator): Use BOX_DOUBLE_HORIZONTAL for '=' if present. * doc/lispref/display.texi: Add documentation. * etc/NEWS: Mention in NEWS.
* Replace is_frame_ancestor with frame_ancestor_pGerd Möllmann2025-01-251-14/+3
| | | | | | | | * src/dispnew.c (is_frame_ancestor): Removed. (frame_z_order_cmp): Use frame_ancestor_p. (copy_child_glyphs): Ditto. * src/dispextern.h: Declaration removed. * src/term.c (mouse_get_xy): Use frame_ancestor_p.
* Reapply "Multi-tty: selected frame can be a GUI frame"Gerd Möllmann2025-01-251-15/+38
| | | | This reverts commit d93d822285813b89f2444ef93c5747cbeb67a46b.
* Reapply "Fix mouse position handling for nested tty child frames"Gerd Möllmann2025-01-251-0/+11
| | | | This reverts commit e2cc52dbcd196f95cc79c6c6d899b9e86e696fe5.
* Reapply "Simplify absolute (x, y) computation on ttys"Gerd Möllmann2025-01-251-10/+9
| | | | This reverts commit 13fdcd730ff63bf79caace9a6e46aff5f944b1b7.
* Revert "Simplify absolute (x, y) computation on ttys"Gerd Möllmann2025-01-251-9/+10
| | | | This reverts commit 5e132835ad320be1d5c45ffbf83d67d16fc7bf96.
* Revert "Fix mouse position handling for nested tty child frames"Gerd Möllmann2025-01-251-11/+0
| | | | This reverts commit f37559a1ee035d184bc4db6e4f597281d3ac6879.
* Revert "Multi-tty: selected frame can be a GUI frame"Gerd Möllmann2025-01-251-38/+15
| | | | This reverts commit 57b7c07b3709d9a2b2c70e0c8218a52448368a12.
* Multi-tty: selected frame can be a GUI frameGerd Möllmann2025-01-251-15/+38
| | | | | | | | * src/dispnew.c (frame_selected_window_frame): New function. (is_cursor_obscured): Use it. (terminal_cursor_magic): Use the frame of the selected window of he root frame. (combine_updates_for_frame): Move Android conditional compilation out.
* Fix mouse position handling for nested tty child framesGerd Möllmann2025-01-251-0/+11
| | | | | | | | | | * src/dispnew.c (child_xy): New function. * src/dispextern.h: Declare it. * src/term.c (tty_frame_at): Return child-relative (x, y) in output parameters. (Ftty_frame_at): Return a list (FRAME CHILD-X CHILD-Y). (handle_one_term_event): Adapt use of tty_frame_at. * lisp/xt-mouse.el (xterm-mouse-event): Use new tty-frame-at.
* Simplify absolute (x, y) computation on ttysGerd Möllmann2025-01-251-10/+9
| | | | | | | | * src/dispnew.c (root_xy): New function. (frame_pos_abs): Removed. (frame_rect_abs, abs_cursor_pos): Use root_xy. * src/dispextern.h: Declare root_xy. * src/term.c (mouse_get_xy): Use it.
* ; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.Eli Zaretskii2025-01-241-1/+1
|
* Revert "; * src/dispnew.c (combine_updates_for_frame): Fix whitespace."Eli Zaretskii2025-01-241-1/+1
| | | | | This reverts commit c941b94e51f4e5996718416ac908249cb71da1d9. It was pushed by mistake.
* ; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.Eli Zaretskii2025-01-241-1/+1
|
* Handle update of invisible tty frames (bug#75056)Gerd Möllmann2025-01-241-2/+11
| | | | | * src/dispnew.c (combine_updates_for_frame): Don't assume root frame is visible.
* Handle tty menus overlapping child framesGerd Möllmann2025-01-231-2/+2
| | | | | | | * src/dispnew.c (frame_pos_abs, is_frame_ancestor): Make externally visible. * src/dispextern.h: Declare above functions. * src/term.c (mouse_get_xy): Handle mouse movement over child frames.
* Improve copying current glyphs when building frame matrixGerd Möllmann2025-01-211-10/+15
| | | | | * src/dispnew.c (build_frame_matrix_from_leaf_window): Don't make space glyphs. More comments.
* Don't use a redisplay optimization in a certain case on ttysGerd Möllmann2025-01-211-0/+12
| | | | | | | * src/dispnew.c (is_tty_root_frame_with_visible_child): New function. * src/dispextern.h: Declare it. * src/xdisp.c (redisplay_internal): Don't use optimization 1 for tty root frames with a visible child frame.
* Handle removal of selected tty child frameMartin Rudalics2025-01-141-12/+0
| | | | | | | | | | | | | | | | | | | | * src/dispextern.h (root_frame): * src/frame.h (root_frame): Move declaration from dispextern.h to frame.h. (SET_FRAME_VISIBLE): Whend making the selected tty child frame invisible, use mru_rooted_frame to find a frame to switch to. * src/dispnew.c (root_frame): Move root_frame to frame.c. * src/frame.c (do_switch_frame): On ttys don't change the top frame when switching from a child frame to another frame with the same root. (root_frame): Move here from dispnew.c. (Fframe_root_frame): New Lisp function. (delete_frame): Whend deleting the selected tty child frame use, mru_rooted_frame to find a frame to switch to. * src/window.c (mru_rooted_frame): New function. * src/window.h (mru_rooted_frame): Declare it. * doc/lispref/frames.texi (Child Frames): Describe new function 'frame-root-frame'.
* Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Fix a number of Android compilation warningsPo Lu2024-12-211-2/+10
| | | | | | * src/dispnew.c (frame_rect_abs, frame_pos_abs, rect_intersect) (copy_child_glyphs, abs_cursor_pos, is_in_matrix) (is_cursor_obscured) [HAVE_ANDROID]: Delete functions.
* Enable adjusting frame sizes on MS-DOSPo Lu2024-12-201-2/+3
| | | | | | | | * src/dispnew.c (change_frame_size): Do not propagate changes to child frames to root frames and vice versa. * src/frame.c (adjust_frame_size): Do not change video modes in resizing a child frame.
* Enable TTY child frames on MS-DOSPo Lu2024-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/conf_post.h (ENOTSUP): Define to ENOSYS as msdos.h once did. (IFTODT): Copy definition from Gnulib. * src/dispnew.c (is_tty_frame): Also test FRAME_MSDOS_P. * src/frame.c (tty_child_pos_param, tty_child_size_param): Export functions. * src/msdos.c (mouse_get_xy, mouse_moveto, mouse_pressed): Offset mouse positions by those of the selected frame. (it_face_override): New function. (IT_set_face): New argument F. Load FACE_ID from its face cache. (IT_write_glyphs): Track the frames on which glyphs were generated and apply faces from their individual face caches. (IT_write_glyphs_with_face): New function. (tty_draw_row_with_mouse_face): Reimplement in line with tty.c and eliminate an obsolete optimization. (IT_clear_end_of_line, IT_clear_screen): Load faces from the cache of the provided frame. (IT_set_frame_parameters): Adjust frame geometry and garbage frames after geometry parameters change as a child frame. (BUILD_CHAR_GLYPH): Accept new parameter F. (IT_menu_display): Offset cursor positions by those of the selected frame. * src/msdos.h (ENOTSUP): Move to conf_post.h for Gnulib. * src/xdisp.c (redisplay_internal): Redisplay MSDOS frames unconditionally as with terminal frames.
* Fix the Android portPo Lu2024-12-201-0/+6
| | | | | | | * src/dispnew.c (terminal_cursor_magic) (combine_updates_for_frame): Disable unused code on Android. * src/frame.c (tty_child_frame_rect): Define out on Android.