git-gui: Refactor mouse clicking on file names/icons.

I'm not a huge fan of putting the left and right mouse actions into
the same procedure.  Originally this is how Paul had implemented the
logic in gitool and I had carried some of that over into git-gui, but
now that I'm getting ready to implement right mouse click features to
act on files I really should split this apart.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2006-11-13 14:25:53 -05:00
parent f7f8d32226
commit 7d0d289e45

15
git-gui
View File

@ -1935,10 +1935,8 @@ proc do_save_config {w} {
destroy $w destroy $w
} }
# shift == 1: left click proc file_left_click {w x y} {
# 3: right click global file_lists
proc click {w x y shift wx wy} {
global ui_index ui_other file_lists
set pos [split [$w index @$x,$y] .] set pos [split [$w index @$x,$y] .]
set lno [lindex $pos 0] set lno [lindex $pos 0]
@ -1946,12 +1944,12 @@ proc click {w x y shift wx wy} {
set path [lindex $file_lists($w) [expr $lno - 1]] set path [lindex $file_lists($w) [expr $lno - 1]]
if {$path eq {}} return if {$path eq {}} return
if {$col > 0 && $shift == 1} { if {$col > 0} {
show_diff $path $w $lno show_diff $path $w $lno
} }
} }
proc unclick {w x y} { proc file_left_unclick {w x y} {
global file_lists global file_lists
set pos [split [$w index @$x,$y] .] set pos [split [$w index @$x,$y] .]
@ -2457,9 +2455,8 @@ bind all <$M1B-Key-Q> do_quit
bind all <$M1B-Key-w> {destroy [winfo toplevel %W]} bind all <$M1B-Key-w> {destroy [winfo toplevel %W]}
bind all <$M1B-Key-W> {destroy [winfo toplevel %W]} bind all <$M1B-Key-W> {destroy [winfo toplevel %W]}
foreach i [list $ui_index $ui_other] { foreach i [list $ui_index $ui_other] {
bind $i <Button-1> {click %W %x %y 1 %X %Y; break} bind $i <Button-1> {file_left_click %W %x %y; break}
bind $i <ButtonRelease-1> {unclick %W %x %y; break} bind $i <ButtonRelease-1> {file_left_unclick %W %x %y; break}
bind_button3 $i {click %W %x %y 3 %X %Y; break}
} }
unset i unset i