summaryrefslogtreecommitdiff
path: root/git-gui/lib
diff options
context:
space:
mode:
Diffstat (limited to 'git-gui/lib')
-rw-r--r--git-gui/lib/blame.tcl1
-rw-r--r--git-gui/lib/choose_repository.tcl27
-rw-r--r--git-gui/lib/index.tcl6
-rw-r--r--git-gui/lib/mergetool.tcl2
-rw-r--r--git-gui/lib/themed.tcl38
5 files changed, 46 insertions, 28 deletions
diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl
index 62ec083667..8441e109be 100644
--- a/git-gui/lib/blame.tcl
+++ b/git-gui/lib/blame.tcl
@@ -328,6 +328,7 @@ constructor new {i_commit i_path i_jump} {
bind $i <Any-Motion> [cb _show_tooltip $i @%x,%y]
bind $i <Any-Enter> [cb _hide_tooltip]
bind $i <Any-Leave> [cb _hide_tooltip]
+ bind $i <Deactivate> [cb _hide_tooltip]
bind_button3 $i "
[cb _hide_tooltip]
set cursorX %x
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl
index e54f3e66d8..af1fee7c75 100644
--- a/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl
@@ -357,31 +357,10 @@ proc _is_git {path {outdir_var ""}} {
if {$outdir_var ne ""} {
upvar 1 $outdir_var outdir
}
- if {[file isfile $path]} {
- set fp [open $path r]
- gets $fp line
- close $fp
- if {[regexp "^gitdir: (.+)$" $line line link_target]} {
- set path [file join [file dirname $path] $link_target]
- set path [file normalize $path]
- }
- }
-
- if {[file exists [file join $path HEAD]]
- && [file exists [file join $path objects]]
- && [file exists [file join $path config]]} {
- set outdir $path
- return 1
- }
- if {[is_Cygwin]} {
- if {[file exists [file join $path HEAD]]
- && [file exists [file join $path objects.lnk]]
- && [file exists [file join $path config.lnk]]} {
- set outdir $path
- return 1
- }
+ if {[catch {set outdir [git rev-parse --resolve-git-dir $path]}]} {
+ return 0
}
- return 0
+ return 1
}
proc _objdir {path} {
diff --git a/git-gui/lib/index.tcl b/git-gui/lib/index.tcl
index 1fc5b42300..d2ec24bd80 100644
--- a/git-gui/lib/index.tcl
+++ b/git-gui/lib/index.tcl
@@ -60,7 +60,7 @@ proc rescan_on_error {err {after {}}} {
$::main_status stop_all
unlock_index
- rescan [concat $after [list ui_ready]] 0
+ rescan [concat $after {ui_ready;}] 0
}
proc update_indexinfo {msg path_list after} {
@@ -314,7 +314,7 @@ proc unstage_helper {txt paths} {
update_indexinfo \
$txt \
$path_list \
- [concat $after [list ui_ready]]
+ [concat $after {ui_ready;}]
}
}
@@ -366,7 +366,7 @@ proc add_helper {txt paths} {
update_index \
$txt \
$path_list \
- [concat $after {ui_status [mc "Ready to commit."]}]
+ [concat $after {ui_status [mc "Ready to commit."];}]
}
}
diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
index 120bc4064b..e688b016ef 100644
--- a/git-gui/lib/mergetool.tcl
+++ b/git-gui/lib/mergetool.tcl
@@ -59,7 +59,7 @@ proc merge_add_resolution {path} {
update_index \
[mc "Adding resolution for %s" [short_path $path]] \
[list $path] \
- [concat $after [list ui_ready]]
+ [concat $after {ui_ready;}]
}
proc merge_force_stage {stage} {
diff --git a/git-gui/lib/themed.tcl b/git-gui/lib/themed.tcl
index 88b3119a75..83e3ac795f 100644
--- a/git-gui/lib/themed.tcl
+++ b/git-gui/lib/themed.tcl
@@ -1,6 +1,44 @@
# Functions for supporting the use of themed Tk widgets in git-gui.
# Copyright (C) 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+namespace eval color {
+ # Variable colors
+ # Preffered way to set widget colors is using add_option.
+ # In some cases, like with tags in_diff/in_sel, we use these colors.
+ variable select_bg lightgray
+ variable select_fg black
+
+ proc sync_with_theme {} {
+ set base_bg [ttk::style lookup . -background]
+ set base_fg [ttk::style lookup . -foreground]
+ set text_bg [ttk::style lookup Treeview -background]
+ set text_fg [ttk::style lookup Treeview -foreground]
+ set select_bg [ttk::style lookup Default -selectbackground]
+ set select_fg [ttk::style lookup Default -selectforeground]
+
+ set color::select_bg $select_bg
+ set color::select_fg $select_fg
+
+ proc add_option {key val} {
+ option add $key $val widgetDefault
+ }
+ # Add options for plain Tk widgets
+ # Using `option add` instead of tk_setPalette to avoid unintended
+ # consequences.
+ if {![is_MacOSX]} {
+ add_option *Menu.Background $base_bg
+ add_option *Menu.Foreground $base_fg
+ add_option *Menu.activeBackground $select_bg
+ add_option *Menu.activeForeground $select_fg
+ }
+ add_option *Text.Background $text_bg
+ add_option *Text.Foreground $text_fg
+ add_option *Text.HighlightBackground $base_bg
+ add_option *Text.HighlightColor $select_bg
+ }
+}
+
proc ttk_get_current_theme {} {
# Handle either current Tk or older versions of 8.5
if {[catch {set theme [ttk::style theme use]}]} {