summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2020-01-20 02:35:53 +0200
committerJuri Linkov <juri@linkov.net>2020-01-20 02:35:53 +0200
commit92f30d62c038affa515989ad3ccf170b604c9174 (patch)
tree3dde29d6d1cb1353f17f58a0f414b07bef29604b
parentdde313151d32bbea358b0c019104035582710a5e (diff)
downloademacs-92f30d62c038affa515989ad3ccf170b604c9174.tar.gz
* lisp/tab-line.el (tab-line-auto-hscroll): Fix for long tab names.
Check for nil value returned by previous-single-property-change that happens when tab name is longer than window width.
-rw-r--r--lisp/tab-line.el28
1 files changed, 16 insertions, 12 deletions
diff --git a/lisp/tab-line.el b/lisp/tab-line.el
index ef530d43dec..5bbc45b0aae 100644
--- a/lisp/tab-line.el
+++ b/lisp/tab-line.el
@@ -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)))))))))