When a completion framework displays candidates (overlay-based or
child-frame popup), override Zoom focus to the selected candidate
so the zoomed viewport follows the user's selection rather than the
text cursor.
* src/nsterm.m (NS_ZOOM_MAX_COMPLETION_CHARS): New macro.
(ns_face_name_matches_selected_p_1): New static helper; recursive
face name match with depth-limit guard.
(ns_face_name_matches_selected_p): New static predicate; matches
'current', 'selected', 'selection' in face names.
(ns_zoom_find_overlay_candidate_line): New static function; scans
minibuffer overlays for selected completion candidate.
(ns_zoom_find_child_frame_candidate): New static function; scans
child frame buffers for selected candidate.
(ns_zoom_track_completion): New static function; overrides Zoom
focus to selected completion candidate.
(ns_update_end): Call ns_zoom_track_completion.
* etc/NEWS: Document completion tracking for Zoom.
This directory contains the architecture-independent files used by or
with Emacs. This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.
COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
File: emacs.icon
Author: Sun Microsystems, Inc
Copyright (C) 1999, 2001-2026 Free Software Foundation, Inc.
License: GNU General Public License version 3 or later (see COPYING)