1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-24 21:41:48 -08:00
emacs/etc
Stéphane Marks 785059a1f7 Add frame identifiers (bug#80138)
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.
2026-01-13 09:29:44 +01:00
..
charsets ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
e Add auto-margin enable/disable to term 2025-03-02 16:01:13 -05:00
forms ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
gnus
images ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
nxml
org ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
refcards ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
schema ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
srecode ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
themes ; * etc/themes/modus-themes.el: Update comment. 2026-01-02 07:45:14 +01:00
tutorials ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
AUTHORS Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
CALC-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.1 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
compilation.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
COPYING
copyright-assign.txt Add assignment form as etc/copyright-assign.txt 2024-06-23 00:24:31 +02:00
DEBUG ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
DEVEL.HUMOR ; Fix punctuation in etc/* 2024-07-27 01:51:47 +02:00
DISTRIB ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
edt-user.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
EGLOT-NEWS Eglot: release version 1.21 2026-01-11 13:15:27 +00:00
emacs-buffer.gdb ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacs-mail.desktop
emacs.desktop
emacs.icon
emacs.metainfo.xml ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacs.service
emacs_lldb.py ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacsclient-mail.desktop Add 'server-eval-args-left' to server.el 2023-10-29 14:10:23 +02:00
emacsclient.desktop Make emacsclient handle org-protocol:// links 2023-09-18 12:54:22 +02:00
enriched.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ERC-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ETAGS.EBNF ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ETAGS.README ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
future-bug ; Fix typos 2025-01-23 03:14:37 +01:00
gnus-tut.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
grep.txt ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
HELLO ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
HISTORY Update files for Emacs 30.2 2025-08-14 04:05:28 -04:00
JOKES
MACHINES ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
MH-E-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS Add frame identifiers (bug#80138) 2026-01-13 09:29:44 +01:00
NEWS.1-17 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.18 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.19 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.20 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.21 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.22 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.23 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.24 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.25 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.26 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.27 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.28 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.29 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEWS.30 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NEXTSTEP ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
NXML-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ORG-NEWS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
org.gnu.emacs.defaults.gschema.xml ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
package-keyring.gpg * etc/package-keyring.gpg: Update expiration and add new key 2024-10-22 12:35:18 -04:00
PROBLEMS ; Mention in PROBLEMS the issue with XIM character-selection window 2026-01-03 12:30:12 +02:00
ps-prin0.ps ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-prin1.ps ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
publicsuffix.txt ; * etc/publicsuffix.txt: Update from upstream. 2024-12-22 13:50:41 +02:00
README ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rgb.txt Revert "Update etc/rgb.txt from X.Org upstream" 2023-10-16 08:56:53 +08:00
ses-example.ses ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
spook.lines
symbol-releases.eld ; * etc/symbol-releases.eld (dired-click-to-select-mode): Add. 2025-08-23 16:34:43 +03:00
TERMS ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
TODO ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
w32-feature.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00

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)