]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-bar.el: Fix behavior of toggle-frame-tab-bar (bug #46299)
authorBastian Beranek <bastian.beischer@rwth-aachen.de>
Tue, 16 Feb 2021 10:35:35 +0000 (11:35 +0100)
committerJuri Linkov <juri@linkov.net>
Tue, 16 Feb 2021 17:27:32 +0000 (19:27 +0200)
(toggle-frame-tab-bar): Add frame parameter to protect tab bar state.
(tab-bar--update-tab-bar-lines): Check parameter.

lisp/tab-bar.el

index 4e47ae2c10e6682972204dd17d00d18013e2bbf5..f0210e1a42b6467a3543bd98d3ba33c539475798 100644 (file)
@@ -161,7 +161,8 @@ update."
                          (t frames))))
     ;; Loop over all frames and update default-frame-alist
     (dolist (frame frame-lst)
-      (set-frame-parameter frame 'tab-bar-lines (tab-bar--tab-bar-lines-for-frame frame))))
+      (unless (frame-parameter frame 'tab-bar-lines-keep-state)
+        (set-frame-parameter frame 'tab-bar-lines (tab-bar--tab-bar-lines-for-frame frame)))))
   (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))
@@ -233,7 +234,9 @@ new frame when the global `tab-bar-mode' is enabled, by using
   (add-hook 'after-make-frame-functions 'toggle-frame-tab-bar)"
   (interactive)
   (set-frame-parameter frame 'tab-bar-lines
-                       (if (> (frame-parameter frame 'tab-bar-lines) 0) 0 1)))
+                       (if (> (frame-parameter frame 'tab-bar-lines) 0) 0 1))
+  (set-frame-parameter frame 'tab-bar-lines-keep-state
+                       (not (frame-parameter frame 'tab-bar-lines-keep-state))))
 
 (defvar tab-bar-map (make-sparse-keymap)
   "Keymap for the tab bar.