unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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

* 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).