From: Juri Linkov Date: Fri, 7 Jul 2023 06:33:56 +0000 (+0300) Subject: * lisp/tab-bar.el: Improve tab-bar-minibuffer-restore-tab (bug#64373). X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0522049864951fcb1231e80725a3c8d7d88605c6;p=emacs.git * lisp/tab-bar.el: Improve tab-bar-minibuffer-restore-tab (bug#64373). (tab-bar-select-tab): Set tab-bar-minibuffer-restore-tab and minibuffer-exit-hook minibuffer-locally to handle recursive minibuffers for non-nil read-minibuffer-restore-windows. (tab-bar-minibuffer-restore-tab): No need to reset minibuffer-local values. --- diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index 234e7e5d14d..f47c4a7bb6c 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -1261,10 +1261,8 @@ inherits the current tab's `explicit-name' parameter." This is necessary to prepare the same window configuration where original windows were saved and will be restored. This function is used only when `read-minibuffer-restore-windows' is non-nil." - (when (and read-minibuffer-restore-windows - tab-bar-minibuffer-restore-tab) - (tab-bar-select-tab tab-bar-minibuffer-restore-tab) - (setq tab-bar-minibuffer-restore-tab nil))) + (when tab-bar-minibuffer-restore-tab + (tab-bar-select-tab tab-bar-minibuffer-restore-tab))) (defun tab-bar-select-tab (&optional tab-number) "Switch to the tab by its absolute position TAB-NUMBER in the tab bar. @@ -1293,8 +1291,8 @@ Negative TAB-NUMBER counts tabs from the end of the tab bar." (when (and read-minibuffer-restore-windows minibuffer-was-active (not tab-bar-minibuffer-restore-tab)) - (setq tab-bar-minibuffer-restore-tab (1+ from-index)) - (add-hook 'minibuffer-exit-hook 'tab-bar-minibuffer-restore-tab)) + (setq-local tab-bar-minibuffer-restore-tab (1+ from-index)) + (add-hook 'minibuffer-exit-hook 'tab-bar-minibuffer-restore-tab nil t)) (unless (eq from-index to-index) (let* ((from-tab (tab-bar--tab))