]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-line.el (tab-line-auto-hscroll): Fix for long tab names.
authorJuri Linkov <juri@linkov.net>
Mon, 20 Jan 2020 00:35:53 +0000 (02:35 +0200)
committerJuri Linkov <juri@linkov.net>
Mon, 20 Jan 2020 00:35:53 +0000 (02:35 +0200)
Check for nil value returned by previous-single-property-change that
happens when tab name is longer than window width.

lisp/tab-line.el

index ef530d43dec21c337f372524fdd21590f1d9fd6f..5bbc45b0aae0227c8ce53bbbaf169fc2460c628a 100644 (file)
@@ -520,12 +520,14 @@ the selected tab visible."
             (add-face-text-property (point-min) (point-max) 'tab-line)
             (if (> (vertical-motion 1) 0)
                 (let* ((point (previous-single-property-change (point) 'tab))
-                       (tab-prop (or (get-pos-property point 'tab)
-                                     (get-pos-property
-                                      (previous-single-property-change point 'tab) 'tab)))
-                       (new-hscroll (seq-position strings tab-prop
-                                                  (lambda (str tab)
-                                                    (eq (get-pos-property 1 'tab str) tab)))))
+                       (tab-prop (when point
+                                   (or (get-pos-property point 'tab)
+                                       (and (setq point (previous-single-property-change point 'tab))
+                                            (get-pos-property point 'tab)))))
+                       (new-hscroll (when tab-prop
+                                      (seq-position strings tab-prop
+                                                    (lambda (str tab)
+                                                      (eq (get-pos-property 1 'tab str) tab))))))
                   (when new-hscroll
                     (setq hscroll (- new-hscroll))
                     (set-window-parameter nil 'tab-line-hscroll hscroll)))
@@ -545,12 +547,14 @@ the selected tab visible."
               (add-face-text-property (point-min) (point-max) 'tab-line)
               (when (> (vertical-motion 1) 0)
                 (let* ((point (previous-single-property-change (point) 'tab))
-                       (tab-prop (or (get-pos-property point 'tab)
-                                     (get-pos-property
-                                      (previous-single-property-change point 'tab) 'tab)))
-                       (new-hscroll (seq-position strings tab-prop
-                                                  (lambda (str tab)
-                                                    (eq (get-pos-property 1 'tab str) tab)))))
+                       (tab-prop (when point
+                                   (or (get-pos-property point 'tab)
+                                       (and (setq point (previous-single-property-change point 'tab))
+                                            (get-pos-property point 'tab)))))
+                       (new-hscroll (when tab-prop
+                                      (seq-position strings tab-prop
+                                                    (lambda (str tab)
+                                                      (eq (get-pos-property 1 'tab str) tab))))))
                   (when new-hscroll
                     (setq hscroll (- new-hscroll))
                     (set-window-parameter nil 'tab-line-hscroll hscroll)))))))))