Commits

Anonymous committed c382fdd

git-gui: if a background colour is set, set foreground colour as well

In several places, only the background colour is set to an explicit
value, sometimes even "white". This does not work well with dark
colour themes.

This patch tries to set the foreground colour to "black" in those
situations, where an explicit background colour is set without defining
any foreground colour.

Signed-off-by: Philipp A. Hartmann <ph@sorgh.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Comments (0)

Files changed (6)

 #
 frame .vpane.files.index -height 100 -width 200
 label .vpane.files.index.title -text [mc "Staged Changes (Will Commit)"] \
-	-background lightgreen
-text $ui_index -background white -borderwidth 0 \
+	-background lightgreen -foreground black
+text $ui_index -background white -foreground black \
+	-borderwidth 0 \
 	-width 20 -height 10 \
 	-wrap none \
 	-cursor $cursor_ptr \
 #
 frame .vpane.files.workdir -height 100 -width 200
 label .vpane.files.workdir.title -text [mc "Unstaged Changes"] \
-	-background lightsalmon
-text $ui_workdir -background white -borderwidth 0 \
+	-background lightsalmon -foreground black
+text $ui_workdir -background white -foreground black \
+	-borderwidth 0 \
 	-width 20 -height 10 \
 	-wrap none \
 	-cursor $cursor_ptr \
 pack .vpane.lower.commarea.buffer.header.amend -side right
 pack .vpane.lower.commarea.buffer.header.new -side right
 
-text $ui_comm -background white -borderwidth 1 \
+text $ui_comm -background white -foreground black \
+	-borderwidth 1 \
 	-undo true \
 	-maxundo 20 \
 	-autoseparators true \
 frame .vpane.lower.diff.header -background gold
 label .vpane.lower.diff.header.status \
 	-background gold \
+	-foreground black \
 	-width $max_status_desc \
 	-anchor w \
 	-justify left
 label .vpane.lower.diff.header.file \
 	-background gold \
+	-foreground black \
 	-anchor w \
 	-justify left
 label .vpane.lower.diff.header.path \
 	-background gold \
+	-foreground black \
 	-anchor w \
 	-justify left
 pack .vpane.lower.diff.header.status -side left
 #
 frame .vpane.lower.diff.body
 set ui_diff .vpane.lower.diff.body.t
-text $ui_diff -background white -borderwidth 0 \
+text $ui_diff -background white -foreground black \
+	-borderwidth 0 \
 	-width 80 -height 15 -wrap none \
 	-font font_diff \
 	-xscrollcommand {.vpane.lower.diff.body.sbx set} \
 	label $w.header.commit_l \
 		-text [mc "Commit:"] \
 		-background gold \
+		-foreground black \
 		-anchor w \
 		-justify left
 	set w_back $w.header.commit_b
 		-relief flat \
 		-state disabled \
 		-background gold \
+		-foreground black \
 		-activebackground gold
 	bind $w_back <Button-1> "
 		if {\[$w_back cget -state\] eq {normal}} {
 	label $w.header.commit \
 		-textvariable @commit \
 		-background gold \
+		-foreground black \
 		-anchor w \
 		-justify left
 	label $w.header.path_l \
 		-text [mc "File:"] \
 		-background gold \
+		-foreground black \
 		-anchor w \
 		-justify left
 	set w_path $w.header.path
 	label $w_path \
 		-background gold \
+		-foreground black \
 		-anchor w \
 		-justify left
 	pack $w.header.commit_l -side left
 		-takefocus 0 \
 		-highlightthickness 0 \
 		-padx 0 -pady 0 \
-		-background white -borderwidth 0 \
+		-background white \
+		-foreground black \
+		-borderwidth 0 \
 		-state disabled \
 		-wrap none \
 		-height 40 \
 		-takefocus 0 \
 		-highlightthickness 0 \
 		-padx 0 -pady 0 \
-		-background white -borderwidth 0 \
+		-background white \
+		-foreground black \
+		-borderwidth 0 \
 		-state disabled \
 		-wrap none \
 		-height 40 \
 		-takefocus 0 \
 		-highlightthickness 0 \
 		-padx 0 -pady 0 \
-		-background white -borderwidth 0 \
+		-background white \
+		-foreground black \
+		-borderwidth 0 \
 		-state disabled \
 		-wrap none \
 		-height 40 \
 		-takefocus 0 \
 		-highlightthickness 0 \
 		-padx 0 -pady 0 \
-		-background white -borderwidth 0 \
+		-background white \
+		-foreground black \
+		-borderwidth 0 \
 		-state disabled \
 		-wrap none \
 		-height 40 \
 
 	set w_cviewer $w.file_pane.cm.t
 	text $w_cviewer \
-		-background white -borderwidth 0 \
+		-background white \
+		-foreground black \
+		-borderwidth 0 \
 		-state disabled \
 		-wrap none \
 		-height 10 \
 
 	frame $w.list
 	set w_list $w.list.l
-	text $w_list -background white -borderwidth 0 \
+	text $w_list -background white -foreground black \
+		-borderwidth 0 \
 		-cursor $cursor_ptr \
 		-state disabled \
 		-wrap none \

lib/choose_font.tcl

 	set w_family $w.inner.family.v
 	text $w_family \
 		-background white \
+		-foreground black \
 		-borderwidth 1 \
 		-relief sunken \
 		-cursor $::cursor_ptr \
 	set w_example $w.example.t
 	text $w_example \
 		-background white \
+		-foreground black \
 		-borderwidth 1 \
 		-relief sunken \
 		-height 3 \
 		-justify left \
 		-font font_uibold
 	text $w_t \
-		-background white -borderwidth 1 \
+		-background white \
+		-foreground black \
+		-borderwidth 1 \
 		-relief sunken \
 		-width 80 -height 10 \
 		-wrap none \
 	if {$ok} {
 		if {[winfo exists $w.m.s]} {
 			bind $w.m.s <Destroy> [list delete_this $this]
-			$w.m.s conf -background green -text [mc "Success"]
+			$w.m.s conf -background green -foreground black \
+				-text [mc "Success"]
 			if {$is_toplevel} {
 				$w.ok conf -state normal
 				focus $w.ok
 			_init $this
 		}
 		bind $w.m.s <Destroy> [list delete_this $this]
-		$w.m.s conf -background red -text [mc "Error: Command Failed"]
+		$w.m.s conf -background red -foreground black \
+			-text [mc "Error: Command Failed"]
 		if {$is_toplevel} {
 			$w.ok conf -state normal
 			focus $w.ok
 		-justify left \
 		-font font_uibold
 	text $w.m.t \
-		-background white -borderwidth 1 \
+		-background white \
+		-foreground black \
+		-borderwidth 1 \
 		-relief sunken \
 		-width 80 -height 10 \
 		-font font_diff \