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
parent
31a8d1968e
commit
833eda736a
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…
Reference in New Issue