aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2006-11-19 00:37:49 -0500
committerShawn O. Pearce <spearce@spearce.org>2006-11-19 00:37:49 -0500
commit74d18d2edfc84d35b20e1b4520e496aadc14c365 (patch)
tree0a9cea12f91a4c299192171e5eaf09da0f698b89
parent1461c5f3d0634f6fad0013eba1ef1087a38cc748 (diff)
downloadgit-74d18d2edfc84d35b20e1b4520e496aadc14c365.tar.gz
git-74d18d2edfc84d35b20e1b4520e496aadc14c365.tar.xz
git-gui: Make consecutive icon clicks toggle included status of a file.
If the user clicks on the icon associated with a file we now flip to the inverse status. Partially included files first fully include, then fully uninclude, as we don't keep track of intermediate partial inclusions. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rwxr-xr-xgit-gui23
1 files changed, 18 insertions, 5 deletions
diff --git a/git-gui b/git-gui
index 6b886c64c..7126f8d89 100755
--- a/git-gui
+++ b/git-gui
@@ -2387,7 +2387,7 @@ proc do_macosx_app {} {
}
proc toggle_or_diff {w x y} {
- global file_lists current_diff ui_index ui_other
+ global file_states file_lists current_diff ui_index ui_other
global last_clicked selected_paths
set pos [split [$w index @$x,$y] .]
@@ -2410,10 +2410,23 @@ proc toggle_or_diff {w x y} {
} else {
set after {}
}
- update_index \
- "Including [short_path $path]" \
- [list $path] \
- [concat $after {set ui_status_value {Ready.}}]
+ switch -glob -- [lindex $file_states($path) 0] {
+ A_ -
+ AO -
+ M_ -
+ D_ {
+ update_indexinfo \
+ "Removing [short_path $path] from commit" \
+ [list $path] \
+ [concat $after {set ui_status_value {Ready.}}]
+ }
+ ?? {
+ update_index \
+ "Including [short_path $path]" \
+ [list $path] \
+ [concat $after {set ui_status_value {Ready.}}]
+ }
+ }
} else {
show_diff $path $w $lno
}