From: Stefan Kangas Date: Sun, 3 Nov 2019 16:45:48 +0000 (+0100) Subject: Handle truncate-lines in customize-group X-Git-Tag: emacs-27.0.90~750 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=84a3793b194efe92e2eb80cd0f625f3324bf4cae;p=emacs.git Handle truncate-lines in customize-group * lisp/cus-edit.el (custom-group--draw-horizontal-line): New function to draw horizontal lines which handles a non-nil value of 'truncate-lines'. (Bug#25308) (custom-group-value-create): Use it. Co-authored-by: Jonas Bernoulli --- diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index b9fd3e0a2d4..081d4c9213e 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -4062,6 +4062,22 @@ If GROUPS-ONLY is non-nil, return only those members that are groups." (push entry members))) (nreverse members)))) +(defun custom-group--draw-horizontal-line () + "Draw a horizontal line at point. +This works for both graphical and text displays." + (let ((p (point))) + (insert "\n") + (put-text-property p (1+ p) 'face '(:underline t)) + (overlay-put (make-overlay p (1+ p)) + 'before-string + (propertize "\n" 'face '(:underline t) + 'display + (list 'space :align-to + `(+ (0 . right) + ,(min (window-hscroll) + (- (line-end-position) + (line-beginning-position))))))))) + (defun custom-group-value-create (widget) "Insert a customize group for WIDGET in the current buffer." (unless (eq (widget-get widget :custom-state) 'hidden) @@ -4188,15 +4204,7 @@ If GROUPS-ONLY is non-nil, return only those members that are groups." ;; Nested style. (t ;Visible. - ;; Draw a horizontal line (this works for both graphical - ;; and text displays): - (let ((p (point))) - (insert "\n") - (put-text-property p (1+ p) 'face '(:underline t)) - (overlay-put (make-overlay p (1+ p)) - 'before-string - (propertize "\n" 'face '(:underline t) - 'display '(space :align-to 999)))) + (custom-group--draw-horizontal-line) ;; Add parent groups references above the group. (when (eq level 1) @@ -4287,13 +4295,7 @@ If GROUPS-ONLY is non-nil, return only those members that are groups." (widget-put widget :children children) (custom-group-state-update widget)) ;; End line - (let ((p (1+ (point)))) - (insert "\n\n") - (put-text-property p (1+ p) 'face '(:underline t)) - (overlay-put (make-overlay p (1+ p)) - 'before-string - (propertize "\n" 'face '(:underline t) - 'display '(space :align-to 999)))))))) + (custom-group--draw-horizontal-line))))) (defvar custom-group-menu `(("Set for Current Session" custom-group-set