]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-bar.el: Check for minibuffer-depth in tab-bar-history-mode.
authorJuri Linkov <juri@linkov.net>
Mon, 28 Oct 2019 21:55:16 +0000 (23:55 +0200)
committerJuri Linkov <juri@linkov.net>
Mon, 28 Oct 2019 21:55:16 +0000 (23:55 +0200)
* lisp/tab-bar.el (tab-bar-history--pre-change): Store also minibuffer-depth.
(tab-bar-history-change): Check stored minibuffer-depth for zero.
(tab-bar-history-mode): Use prefix -- for internal functions.

lisp/tab-bar.el

index 1151df923b7029188f5e15c8a13db602f692208e..c4763337a2502accfeb9c4384d7921ec46748669 100644 (file)
@@ -870,17 +870,23 @@ function `tab-bar-tab-name-function'."
 (defvar tab-bar-history-forward (make-hash-table)
   "History of forward changes in every tab per frame.")
 
-(defvar tab-bar-history-pre-change nil
-  "Window configuration before the current command.")
+(defvar tab-bar-history--pre-change nil
+  "Window configuration and minibuffer depth before the current command.")
 
-(defun tab-bar-history-pre-change ()
-  (setq tab-bar-history-pre-change (current-window-configuration)))
+(defun tab-bar-history--pre-change ()
+  (setq tab-bar-history--pre-change
+        (list (current-window-configuration)
+              (minibuffer-depth))))
 
-(defun tab-bar-history-change ()
+(defun tab-bar--history-change ()
   (when (and (not tab-bar-history-omit)
+             tab-bar-history--pre-change
+             ;; Entering the minibuffer
+             (zerop (nth 1 tab-bar-history--pre-change))
+             ;; Exiting the minibuffer
              (zerop (minibuffer-depth)))
     (puthash (selected-frame)
-             (cons tab-bar-history-pre-change
+             (cons (nth 0 tab-bar-history--pre-change)
                    (gethash (selected-frame) tab-bar-history-back))
             tab-bar-history-back))
   (when tab-bar-history-omit
@@ -934,10 +940,10 @@ function `tab-bar-tab-name-function'."
                                                 :ascent center))
                                tab-bar-forward-button))
 
-        (add-hook 'pre-command-hook 'tab-bar-history-pre-change)
-        (add-hook 'window-configuration-change-hook 'tab-bar-history-change))
-    (remove-hook 'pre-command-hook 'tab-bar-history-pre-change)
-    (remove-hook 'window-configuration-change-hook 'tab-bar-history-change)))
+        (add-hook 'pre-command-hook 'tab-bar-history--pre-change)
+        (add-hook 'window-configuration-change-hook 'tab-bar--history-change))
+    (remove-hook 'pre-command-hook 'tab-bar-history--pre-change)
+    (remove-hook 'window-configuration-change-hook 'tab-bar--history-change)))
 
 \f
 ;;; Short aliases