aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/obsolete/pgg.el
diff options
context:
space:
mode:
authorStéphane Marks2026-01-13 09:29:44 +0100
committerMartin Rudalics2026-01-13 09:29:44 +0100
commit785059a1f7ab0ab272b2463d7a7958746ca8fe80 (patch)
tree77f662954cdc35bd7f9d11087ec8594bee160b72 /lisp/obsolete/pgg.el
parent52875b51bf11646fa5f7d5bf6320407b37c767c6 (diff)
downloademacs-master.tar.gz
emacs-master.zip
Add frame identifiers (bug#80138)HEADmaster
A unique frame id is assigned to a new or cloned frame, and reused on an undeleted frame. The id facilitates unambiguous identification among frames that share identical names or titles, deleted frames where a live frame object no longer exists that we can resurrect by id, for example via 'tab-bar-undo-close-tab'. It also aids debugging at the C level using the frame struct member id. Rewrite 'clone-frame' and 'undelete-frame' to not let bind variables that 'make-frame' uses to avoid conflicts with nested 'make-frame' calls, for example via 'after-make-frame-functions'. * lisp/frame.el (clone-frame, undelete-frame): Use 'frame--purify-parameters' to supply parameters explicitly. (undelete-frame--save-deleted-frame): Save frame id for restoration. (undelete-frame): Restore frame id. (frame--purify-parameters): New defun. (make-frame): Assign a new id for a new or cloned frame, reuse for undeleted frame. * src/frame.h (struct frame): Add id member. (frame_next_id): New extern. * src/frame.c (frame_next_id): New global counter. (frame_set_id, frame_set_id_from_params): New function. (Fframe_id): New DEFUN. (syms_of_frame <Sframe_id>): New defsubr. (syms_of_frame <Qinternal_id>): New DEFSYM. (syms_of_frame <frame_internal_parameters>): Add 'Qinternal_id'. * src/androidfns.c (Fx_create_frame): * src/haikufns.c (Fx_create_frame): * src/nsfns.m (Fx_create_frame): * src/pgtkfns.c (Fx_create_frame): * src/w32fns.c (Fx_create_frame): * src/xfns.c (Fx_create_frame): Call 'frame_set_id_from_params'. * doc/lispref/frames.texi: Add documentation. * etc/NEWS: Announce frame id.
Diffstat (limited to 'lisp/obsolete/pgg.el')
0 files changed, 0 insertions, 0 deletions