* bug#25308: Shorten long "ui-lines" in Custom buffers @ 2016-12-31 13:26 Jonas Bernoulli 2016-12-31 13:57 ` Eli Zaretskii [not found] ` <handler.25308.C.15727997177484.notifdonectrl.0@debbugs.gnu.org> 0 siblings, 2 replies; 8+ messages in thread From: Jonas Bernoulli @ 2016-12-31 13:26 UTC (permalink / raw) To: 25308 Custom buffers contain two long lines, the first separating the initial buttons from the options shown below, and the second is for symmetry, I suppose. This is implemented in `custom-group-value-create'. These lines are 999 characters long. When point ends up on the "line line", then it ends up at the *end* of that line, scrolling all content except for the line itself off-window. This happens both with C-n/C-p, as well as when using the mouse scroll wheel. This is very distracting and I would suggest that these lines be removed completely. If that is not an option, then I would suggest to make the lines short enough for them to almost always end before the window edge. 80 characters instead of 999 would do, I think. If that is considered to be too ugly, then I would suggest setting the `:align-to' to be just long enough to reach the edge of the window (but never longer) at the time `custom-group-value-create' is called, using something like: (list 'space :align-to `(+ (0 . right) ,(min (window-hscroll) (- (line-end-position) (line-beginning-position))))) Thanks for considering these options. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2016-12-31 13:26 bug#25308: Shorten long "ui-lines" in Custom buffers Jonas Bernoulli @ 2016-12-31 13:57 ` Eli Zaretskii 2019-09-29 17:55 ` Lars Ingebrigtsen 2019-11-03 13:13 ` Stefan Kangas [not found] ` <handler.25308.C.15727997177484.notifdonectrl.0@debbugs.gnu.org> 1 sibling, 2 replies; 8+ messages in thread From: Eli Zaretskii @ 2016-12-31 13:57 UTC (permalink / raw) To: Jonas Bernoulli; +Cc: 25308 > From: Jonas Bernoulli <jonas@bernoul.li> > Date: Sat, 31 Dec 2016 14:26:06 +0100 > > Custom buffers contain two long lines, the first separating the initial > buttons from the options shown below, and the second is for symmetry, I > suppose. This is implemented in `custom-group-value-create'. > > These lines are 999 characters long. When point ends up on the "line > line", then it ends up at the *end* of that line, scrolling all content > except for the line itself off-window. This happens both with C-n/C-p, > as well as when using the mouse scroll wheel. The scrolling only happens for me if I set truncate-lines to a non-nil value. Is that what you see? Or perhaps you invoke Customize in a partial-width window, in which case truncate-partial-width-windows is non-nil by default? If lines are not truncated, there's no horizontal scrolling. > If that is considered to be too ugly, then I would suggest setting the > `:align-to' to be just long enough to reach the edge of the window (but > never longer) at the time `custom-group-value-create' is called, using > something like: > > (list 'space :align-to > `(+ (0 . right) > ,(min (window-hscroll) > (- (line-end-position) > (line-beginning-position))))) Does this really work when a window has its lines truncated? ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2016-12-31 13:57 ` Eli Zaretskii @ 2019-09-29 17:55 ` Lars Ingebrigtsen 2019-11-03 13:13 ` Stefan Kangas 1 sibling, 0 replies; 8+ messages in thread From: Lars Ingebrigtsen @ 2019-09-29 17:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Jonas Bernoulli, 25308 Eli Zaretskii <eliz@gnu.org> writes: >> Custom buffers contain two long lines, the first separating the initial >> buttons from the options shown below, and the second is for symmetry, I >> suppose. This is implemented in `custom-group-value-create'. >> >> These lines are 999 characters long. When point ends up on the "line >> line", then it ends up at the *end* of that line, scrolling all content >> except for the line itself off-window. This happens both with C-n/C-p, >> as well as when using the mouse scroll wheel. > > The scrolling only happens for me if I set truncate-lines to a non-nil > value. Is that what you see? Or perhaps you invoke Customize in a > partial-width window, in which case truncate-partial-width-windows is > non-nil by default? > > If lines are not truncated, there's no horizontal scrolling. I can't reproduce the error, either (without truncate-lines). But truncate-lines is not set in Customize buffers by default, so I don't really think this is a bug. However, I agree with Jonas that the lines aren't very pretty. The worst bit is perhaps that the make the little arrow in the right fringe appear... and they aren't symmetrical, since they use 'underline: They're very close to the text at the start, but far away from the final line of text. I'd rather just remove those lines completely -- I think that'd be less busy. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2016-12-31 13:57 ` Eli Zaretskii 2019-09-29 17:55 ` Lars Ingebrigtsen @ 2019-11-03 13:13 ` Stefan Kangas 2019-11-03 14:34 ` Lars Ingebrigtsen 2019-11-03 15:48 ` Eli Zaretskii 1 sibling, 2 replies; 8+ messages in thread From: Stefan Kangas @ 2019-11-03 13:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Jonas Bernoulli, 25308 [-- Attachment #1: Type: text/plain, Size: 1771 bytes --] Eli Zaretskii <eliz@gnu.org> writes: >> From: Jonas Bernoulli <jonas@bernoul.li> >> Date: Sat, 31 Dec 2016 14:26:06 +0100 >> >> Custom buffers contain two long lines, the first separating the initial >> buttons from the options shown below, and the second is for symmetry, I >> suppose. This is implemented in `custom-group-value-create'. >> >> These lines are 999 characters long. When point ends up on the "line >> line", then it ends up at the *end* of that line, scrolling all content >> except for the line itself off-window. This happens both with C-n/C-p, >> as well as when using the mouse scroll wheel. > > The scrolling only happens for me if I set truncate-lines to a non-nil > value. Is that what you see? Or perhaps you invoke Customize in a > partial-width window, in which case truncate-partial-width-windows is > non-nil by default? > > If lines are not truncated, there's no horizontal scrolling. I see the same thing here. >> If that is considered to be too ugly, then I would suggest setting the >> `:align-to' to be just long enough to reach the edge of the window (but >> never longer) at the time `custom-group-value-create' is called, using >> something like: >> >> (list 'space :align-to >> `(+ (0 . right) >> ,(min (window-hscroll) >> (- (line-end-position) >> (line-beginning-position))))) > > Does this really work when a window has its lines truncated? Yes, it works on both text based and graphical displays. Please see the attached patch. Lars suggested to remove the lines entirely, but I think I prefer to not change that for now. Perhaps it would make more sense as part of a bigger overhaul of the look and feel of customize. Any comments? Best regards, Stefan Kangas [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Handle-truncate-lines-in-customize-group.patch --] [-- Type: text/x-diff, Size: 2792 bytes --] From 432de377610215219ad9c61ad63950fd914eb883 Mon Sep 17 00:00:00 2001 From: Stefan Kangas <stefankangas@gmail.com> Date: Sun, 3 Nov 2019 14:07:37 +0100 Subject: [PATCH] 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 <jonas@bernoul.li> --- lisp/cus-edit.el | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index b9fd3e0a2d..081d4c9213 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -4062,6 +4062,22 @@ custom-group-members (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 @@ custom-group-value-create ;; 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 @@ custom-group-value-create (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 -- 2.20.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2019-11-03 13:13 ` Stefan Kangas @ 2019-11-03 14:34 ` Lars Ingebrigtsen 2019-11-03 15:48 ` Eli Zaretskii 1 sibling, 0 replies; 8+ messages in thread From: Lars Ingebrigtsen @ 2019-11-03 14:34 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jonas Bernoulli, 25308 Stefan Kangas <stefan@marxist.se> writes: > Yes, it works on both text based and graphical displays. Please see > the attached patch. > > Lars suggested to remove the lines entirely, but I think I prefer to > not change that for now. Perhaps it would make more sense as part of > a bigger overhaul of the look and feel of customize. > > Any comments? I haven't tried the patch, but it looks good to me. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2019-11-03 13:13 ` Stefan Kangas 2019-11-03 14:34 ` Lars Ingebrigtsen @ 2019-11-03 15:48 ` Eli Zaretskii 2019-11-03 16:48 ` Stefan Kangas 1 sibling, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2019-11-03 15:48 UTC (permalink / raw) To: Stefan Kangas; +Cc: jonas, 25308 > From: Stefan Kangas <stefan@marxist.se> > Cc: Jonas Bernoulli <jonas@bernoul.li>, 25308@debbugs.gnu.org > Date: Sun, 03 Nov 2019 14:13:05 +0100 > > Yes, it works on both text based and graphical displays. Please see > the attached patch. > > Lars suggested to remove the lines entirely, but I think I prefer to > not change that for now. Perhaps it would make more sense as part of > a bigger overhaul of the look and feel of customize. > > Any comments? If your patch works, I have no comments. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#25308: Shorten long "ui-lines" in Custom buffers 2019-11-03 15:48 ` Eli Zaretskii @ 2019-11-03 16:48 ` Stefan Kangas 0 siblings, 0 replies; 8+ messages in thread From: Stefan Kangas @ 2019-11-03 16:48 UTC (permalink / raw) To: Eli Zaretskii; +Cc: jonas, 25308 close 25308 27.1 thanks Eli Zaretskii <eliz@gnu.org> writes: >> From: Stefan Kangas <stefan@marxist.se> >> Cc: Jonas Bernoulli <jonas@bernoul.li>, 25308@debbugs.gnu.org >> Date: Sun, 03 Nov 2019 14:13:05 +0100 >> >> Yes, it works on both text based and graphical displays. Please see >> the attached patch. >> >> Lars suggested to remove the lines entirely, but I think I prefer to >> not change that for now. Perhaps it would make more sense as part of >> a bigger overhaul of the look and feel of customize. >> >> Any comments? > > If your patch works, I have no comments. Thanks. Now pushed to master as commit 84a3793b19. Best regards, Stefan Kangas ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <handler.25308.C.15727997177484.notifdonectrl.0@debbugs.gnu.org>]
* bug#25308: acknowledged by developer (Re: bug#25308: Shorten long "ui-lines" in Custom buffers) [not found] ` <handler.25308.C.15727997177484.notifdonectrl.0@debbugs.gnu.org> @ 2019-11-04 13:21 ` Jonas Bernoulli 0 siblings, 0 replies; 8+ messages in thread From: Jonas Bernoulli @ 2019-11-04 13:21 UTC (permalink / raw) To: 25308 Thanks! GNU bug Tracking System <help-debbugs@gnu.org> writes: > This is an automatic notification regarding your bug report > #25308: Shorten long "ui-lines" in Custom buffers, > which was filed against the emacs package. > > Thank you for your report, which has now been closed. > You can view the full report at > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25308 > > If you require further information, please followup to 25308@debbugs.gnu.org. > > debbugs.gnu.org maintainers > (administrator, GNU bugs database) ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-11-04 13:21 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-12-31 13:26 bug#25308: Shorten long "ui-lines" in Custom buffers Jonas Bernoulli 2016-12-31 13:57 ` Eli Zaretskii 2019-09-29 17:55 ` Lars Ingebrigtsen 2019-11-03 13:13 ` Stefan Kangas 2019-11-03 14:34 ` Lars Ingebrigtsen 2019-11-03 15:48 ` Eli Zaretskii 2019-11-03 16:48 ` Stefan Kangas [not found] ` <handler.25308.C.15727997177484.notifdonectrl.0@debbugs.gnu.org> 2019-11-04 13:21 ` bug#25308: acknowledged by developer (Re: bug#25308: Shorten long "ui-lines" in Custom buffers) Jonas Bernoulli
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).