]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-line.el (tab-line-auto-hscroll): New defcustom (bug#37667)
authorJuri Linkov <juri@linkov.net>
Mon, 18 Nov 2019 21:57:16 +0000 (23:57 +0200)
committerJuri Linkov <juri@linkov.net>
Mon, 18 Nov 2019 21:57:16 +0000 (23:57 +0200)
(tab-line-auto-hscroll): Use this option in the function.

lisp/tab-line.el

index b99e7263297920f3915e18b3acbffb351d8504ce..0f701842dfae626ccde74da52356219c4a9a9b58 100644 (file)
@@ -471,13 +471,21 @@ variable `tab-line-tabs-function'."
                                  tab-line-new-button)))))))
 
 \f
+(defcustom tab-line-auto-hscroll t
+  "Allow or disallow automatic horizontal scrolling of the tab line.
+Non-nil means the tab line are automatically scrolled horizontally to make
+the selected tab visible."
+  :type 'boolean
+  :group 'tab-line
+  :version "27.1")
+
 (defun tab-line-auto-hscroll (strings hscroll)
   (with-temp-buffer
     (let ((truncate-partial-width-windows nil)
+          (truncate-lines nil)
           (inhibit-modification-hooks t)
+          (buffer-undo-list t)
           show-arrows)
-      (setq truncate-lines nil
-            buffer-undo-list t)
       (apply 'insert strings)
       (goto-char (point-min))
       (add-face-text-property (point-min) (point-max) 'tab-line)
@@ -486,7 +494,9 @@ variable `tab-line-tabs-function'."
       (setq show-arrows (> (vertical-motion 1) 0))
       ;; Try to auto-scroll only when scrolling is needed,
       ;; but no manual scrolling was performed before.
-      (when (and show-arrows (not (and (integerp hscroll) (>= hscroll 0))))
+      (when (and tab-line-auto-hscroll
+                 show-arrows
+                 (not (and (integerp hscroll) (>= hscroll 0))))
         (let ((pos (seq-position strings 'selected
                                  (lambda (str prop)
                                    (get-pos-property 1 prop str)))))