gitk: Add horizontal scrollbar to the files list
diff mbox series

Message ID 5c5803ac99b6aaf7ca39393422ca9aa17f0280ec.1569910203.git.bert.wesarg@googlemail.com
State New
Headers show
Series
  • gitk: Add horizontal scrollbar to the files list
Related show

Commit Message

Bert Wesarg Oct. 1, 2019, 10:08 a.m. UTC
Wrapping filenames is an unexpected experience in UX design. Disable
wrapping and add a horizontal scrollbar to the files list to remove this.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
 gitk | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Marc Branchaud Oct. 1, 2019, 3:42 p.m. UTC | #1
On 2019-10-01 6:08 a.m., Bert Wesarg wrote:
> Wrapping filenames is an unexpected experience in UX design. Disable
> wrapping and add a horizontal scrollbar to the files list to remove this.

(Thanks for working on gitk and git-gui!)

I have to say I'm mildly opposed to this change.  The reason is that 
having to scroll to see the end of the filename is extra work, and it's 
work that would have to be repeated as one navigates between commits in 
the same area of code.  Git-gui has scrollbars for its filename panes, 
and I find them more of a hassle that gitk's wrapping.  (The horizontal 
scrollbar might work better if it defaulted to scrolling all the way to 
the *right* instead of to the left.)

But I would instead prefer there to be some visual indication that the 
filename was wrapped.  Maybe indent the wrapped lines?  Or how about 
contracting the file path with an ellipsis (...), like "git diff --stat"?

		M.


> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
> ---
>   gitk | 11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/gitk b/gitk
> index abe4805..bf2a061 100755
> --- a/gitk
> +++ b/gitk
> @@ -2477,13 +2477,16 @@ proc makewindow {} {
>   	-background $bgcolor -foreground $fgcolor \
>   	-font mainfont \
>   	-tabs [list $indent [expr {2 * $indent}]] \
> -	-yscrollcommand ".bright.sb set" \
> +	-xscrollcommand ".bright.sbx set" \
> +	-yscrollcommand ".bright.sby set" \
>   	-cursor [. cget -cursor] \
> -	-spacing1 1 -spacing3 1
> +	-spacing1 1 -spacing3 1 -wrap none
>       lappend bglist $cflist
>       lappend fglist $cflist
> -    ${NS}::scrollbar .bright.sb -command "$cflist yview"
> -    pack .bright.sb -side right -fill y
> +    ${NS}::scrollbar .bright.sbx -orient horizontal -command "$cflist xview"
> +    ${NS}::scrollbar .bright.sby -orient vertical   -command "$cflist yview"
> +    pack .bright.sbx -side bottom -fill x
> +    pack .bright.sby -side right -fill y
>       pack $cflist -side left -fill both -expand 1
>       $cflist tag configure highlight \
>   	-background [$cflist cget -selectbackground]
>

Patch
diff mbox series

diff --git a/gitk b/gitk
index abe4805..bf2a061 100755
--- a/gitk
+++ b/gitk
@@ -2477,13 +2477,16 @@  proc makewindow {} {
 	-background $bgcolor -foreground $fgcolor \
 	-font mainfont \
 	-tabs [list $indent [expr {2 * $indent}]] \
-	-yscrollcommand ".bright.sb set" \
+	-xscrollcommand ".bright.sbx set" \
+	-yscrollcommand ".bright.sby set" \
 	-cursor [. cget -cursor] \
-	-spacing1 1 -spacing3 1
+	-spacing1 1 -spacing3 1 -wrap none
     lappend bglist $cflist
     lappend fglist $cflist
-    ${NS}::scrollbar .bright.sb -command "$cflist yview"
-    pack .bright.sb -side right -fill y
+    ${NS}::scrollbar .bright.sbx -orient horizontal -command "$cflist xview"
+    ${NS}::scrollbar .bright.sby -orient vertical   -command "$cflist yview"
+    pack .bright.sbx -side bottom -fill x
+    pack .bright.sby -side right -fill y
     pack $cflist -side left -fill both -expand 1
     $cflist tag configure highlight \
 	-background [$cflist cget -selectbackground]