diff options
| author | Stéphane Marks | 2026-02-22 10:33:34 +0100 |
|---|---|---|
| committer | Martin Rudalics | 2026-02-22 10:33:34 +0100 |
| commit | 77aac20ce6ea305e7b48d1bb8980ab9656aebf76 (patch) | |
| tree | 5a147d5a256767e5884c2d7291731d46a370c7f1 /src | |
| parent | 2ae21d78ec643488a8ddd9f3a88d8dcff64647ba (diff) | |
| download | emacs-77aac20ce6ea305e7b48d1bb8980ab9656aebf76.tar.gz emacs-77aac20ce6ea305e7b48d1bb8980ab9656aebf76.zip | |
New user option 'after-delete-frame-select-mru-frame' (bug#80397)
Users can revert to the old 'delete-frame' behavior of selecting
the oldest frame in 'frame-list' rather than the most-recently
used frame.
* src/frame.c (delete_frame): Consult
'after-delete-frame-select-mru-frame'.
(syms_of_frame): New defvar
'after-delete-frame-select-mru-frame'.
* etc/NEWS: Reflect the new user option.
Diffstat (limited to 'src')
| -rw-r--r-- | src/frame.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/frame.c b/src/frame.c index 6b5d8942db4..8844e869b18 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -2749,7 +2749,9 @@ delete_frame (Lisp_Object frame, Lisp_Object force) | |||
| 2749 | else | 2749 | else |
| 2750 | { | 2750 | { |
| 2751 | frame1 = Qnil; | 2751 | frame1 = Qnil; |
| 2752 | if (!EQ (force, Qnoelisp)) | 2752 | |
| 2753 | if (after_delete_frame_select_mru_frame | ||
| 2754 | && !EQ (force, Qnoelisp)) | ||
| 2753 | { | 2755 | { |
| 2754 | /* Find the most recently used visible frame among all | 2756 | /* Find the most recently used visible frame among all |
| 2755 | frames on the same terminal as FRAME, excluding FRAME | 2757 | frames on the same terminal as FRAME, excluding FRAME |
| @@ -7778,6 +7780,13 @@ The default is \\+`inhibit' in NS builds and nil everywhere else. */); | |||
| 7778 | alter_fullscreen_frames = Qnil; | 7780 | alter_fullscreen_frames = Qnil; |
| 7779 | #endif | 7781 | #endif |
| 7780 | 7782 | ||
| 7783 | DEFVAR_BOOL ("after-delete-frame-select-mru-frame", | ||
| 7784 | after_delete_frame_select_mru_frame, | ||
| 7785 | doc: /* Non-nil means `delete-frame' selects most recently used frame. | ||
| 7786 | If this is nil, `delete-frame' will select the oldest visible frame on | ||
| 7787 | the same terminal. */); | ||
| 7788 | after_delete_frame_select_mru_frame = true; | ||
| 7789 | |||
| 7781 | defsubr (&Sframe_id); | 7790 | defsubr (&Sframe_id); |
| 7782 | defsubr (&Sframep); | 7791 | defsubr (&Sframep); |
| 7783 | defsubr (&Sframe_live_p); | 7792 | defsubr (&Sframe_live_p); |