Browse Source

git-gui: Only permit selection in one list at a time.

Now that our lists represent more defined states it no longer makes any
sense to permit a user to make selections from both lists at once, as
the each available operation acts only on files whose status corresponds
to only one of the lists.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Shawn O. Pearce 18 years ago
parent
commit
833eda736a
  1. 21
      git-gui.sh

21
git-gui.sh

@ -1355,7 +1355,7 @@ proc display_all_files_helper {w path icon_name m} {
proc display_all_files {} { proc display_all_files {} {
global ui_index ui_workdir global ui_index ui_workdir
global file_states file_lists global file_states file_lists
global last_clicked selected_paths global last_clicked


$ui_index conf -state normal $ui_index conf -state normal
$ui_workdir conf -state normal $ui_workdir conf -state normal
@ -2852,18 +2852,21 @@ proc toggle_or_diff {w x y} {
} }


proc add_one_to_selection {w x y} { proc add_one_to_selection {w x y} {
global file_lists global file_lists last_clicked selected_paths
global last_clicked selected_paths


set pos [split [$w index @$x,$y] .] set lno [lindex [split [$w index @$x,$y] .] 0]
set lno [lindex $pos 0]
set col [lindex $pos 1]
set path [lindex $file_lists($w) [expr {$lno - 1}]] set path [lindex $file_lists($w) [expr {$lno - 1}]]
if {$path eq {}} { if {$path eq {}} {
set last_clicked {} set last_clicked {}
return return
} }


if {$last_clicked ne {}
&& [lindex $last_clicked 0] ne $w} {
array unset selected_paths
[lindex $last_clicked 0] tag remove in_sel 0.0 end
}

set last_clicked [list $w $lno] set last_clicked [list $w $lno]
if {[catch {set in_sel $selected_paths($path)}]} { if {[catch {set in_sel $selected_paths($path)}]} {
set in_sel 0 set in_sel 0
@ -2878,16 +2881,14 @@ proc add_one_to_selection {w x y} {
} }


proc add_range_to_selection {w x y} { proc add_range_to_selection {w x y} {
global file_lists global file_lists last_clicked selected_paths
global last_clicked selected_paths


if {[lindex $last_clicked 0] ne $w} { if {[lindex $last_clicked 0] ne $w} {
toggle_or_diff $w $x $y toggle_or_diff $w $x $y
return return
} }


set pos [split [$w index @$x,$y] .] set lno [lindex [split [$w index @$x,$y] .] 0]
set lno [lindex $pos 0]
set lc [lindex $last_clicked 1] set lc [lindex $last_clicked 1]
if {$lc < $lno} { if {$lc < $lno} {
set begin $lc set begin $lc

Loading…
Cancel
Save