git-gui: allow Ctrl+T to toggle multiple paths
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 9 Jan 2018 14:33:04 +0000 (15:33 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Jan 2018 19:02:40 +0000 (11:02 -0800)
It is possible to select multiple files in the "Unstaged Changes" and
the "Staged Changes" lists. But when hitting Ctrl+T, surprisingly only
one entry is handled, not all selected ones.

Let's just use the same code path as for the "Stage To Commit" and the
"Unstage From Commit" menu items.

This fixes https://github.com/git-for-windows/git/issues/1012

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-gui.sh

index b3c14ac..3fc254c 100755 (executable)
@@ -2502,6 +2502,19 @@ proc toggle_or_diff {mode w args} {
                set pos [split [$w index @$x,$y] .]
                foreach {lno col} $pos break
        } else {
+               if {$mode eq "toggle"} {
+                       if {$w eq $ui_workdir} {
+                               do_add_selection
+                               set last_clicked {}
+                               return
+                       }
+                       if {$w eq $ui_index} {
+                               do_unstage_selection
+                               set last_clicked {}
+                               return
+                       }
+               }
+
                if {$last_clicked ne {}} {
                        set lno [lindex $last_clicked 1]
                } else {