]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix "Buffers->Frames" submenu in daemon sessions
authorEli Zaretskii <eliz@gnu.org>
Thu, 3 Feb 2022 11:00:47 +0000 (13:00 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 3 Feb 2022 11:00:47 +0000 (13:00 +0200)
* lisp/menu-bar.el (menu-bar-update-buffers): Detect the initial
frame by its special terminal's name.  (Bug#53740)

* src/terminal.c (init_initial_terminal): Add comment about using
the initial-terminal's name in menu-bar.el.

lisp/menu-bar.el
src/terminal.c

index 891cdfd5d597f33a22387efc1f50a044e82d53a5..7678b1ece665cd2c228b3aa0c55f8e73d5eb9734 100644 (file)
@@ -2346,7 +2346,8 @@ It must accept a buffer as its only required argument.")
          ;; Ignore the initial frame if present.  It can happen if
          ;; Emacs was started as a daemon.  (bug#53740)
          (dolist (frame (frame-list))
-           (unless (eq frame frame-initial-frame)
+           (unless (equal (terminal-name (frame-terminal frame))
+                          "initial_terminal")
              (push frame frames)))
         ;; Make the menu of buffers proper.
         (setq buffers-menu
index 3db80f4b1fffd43e0d91f0c72464d4775d3b7b97..80f3aed7006d8f96deb70dd75d36a0ca698ca0b0 100644 (file)
@@ -622,6 +622,8 @@ init_initial_terminal (void)
     emacs_abort ();
 
   initial_terminal = create_terminal (output_initial, NULL);
+  /* Note: menu-bar.el:menu-bar-update-buffers knows about this
+     special name of the initial terminal.  */
   initial_terminal->name = xstrdup ("initial_terminal");
   initial_terminal->kboard = initial_kboard;
   initial_terminal->delete_terminal_hook = &delete_initial_terminal;