From f34910756093555303793f9d292de9ff0607990f Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 29 Jun 2025 20:06:06 +0300 Subject: [PATCH] Better fix for ignoring 'tab-bar-lines' in daemon's initial frame * lisp/tab-bar.el (tab-bar--update-tab-bar-lines): Revert '(not (daemonp))' to update 'default-frame-alist' even in daemon mode (bug#78896). * lisp/frame.el (frame-notice-user-settings): For daemon's initial frame don't modify the frame parameter 'tab-bar-lines'. (cherry picked from commit b13c583bc7303780b22e7bf4c4fb832fadfc36a7) --- lisp/frame.el | 8 ++++++-- lisp/tab-bar.el | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/frame.el b/lisp/frame.el index e0ab3c7dee3..5f8fd53290f 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -490,8 +490,12 @@ there (in decreasing order of priority)." parms ;; initial-frame-alist and default-frame-alist were already ;; applied in pc-win.el. - (append initial-frame-alist window-system-frame-alist - default-frame-alist parms nil))) + (setq parms (append initial-frame-alist window-system-frame-alist + default-frame-alist parms nil)) + ;; Don't enable tab-bar in daemon's initial frame. + (when (and (daemonp) (not (frame-parameter nil 'client))) + (setq parms (delq (assq 'tab-bar-lines parms) parms))) + parms)) (if (null initial-window-system) ;; MS-DOS does this differently in pc-win.el (let ((newparms (frame-parameters)) (frame (selected-frame))) diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index ffd67deaf01..b498e9d1b08 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -286,7 +286,7 @@ a list of frames to update." (set-frame-parameter frame 'tab-bar-lines (tab-bar--tab-bar-lines-for-frame frame))))) ;; Update `default-frame-alist' - (when (and (eq frames t) (not (daemonp))) + (when (eq frames t) (setq default-frame-alist (cons (cons 'tab-bar-lines (if (and tab-bar-mode (eq tab-bar-show t)) 1 0)) -- 2.39.5