Code

git-gui: Fix accidental staged state toggle when clicking top pixel row
authorRichard Quirk <richard.quirk@gmail.com>
Fri, 20 Jun 2008 14:58:15 +0000 (16:58 +0200)
committerShawn O. Pearce <spearce@spearce.org>
Sat, 21 Jun 2008 03:19:52 +0000 (23:19 -0400)
If a text widget is asked the index at x,y with y == 0 or y == 1 it will
always return 1.0 as the nearest index, regardless of the x position.

This means that clicking the top 2 pixels of the Unstaged/Staged Changes
lists caused the state of the file there to be toggled. This patch
checks that the pixel clicked is greater than 1, so there is less chance
of accidentally staging or unstaging changes.

Signed-off-by: Richard Quirk <richard.quirk@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh

index 23d7dfec795f4bf96a990d4d9e5b2af2d7d391f6..980dc0b3733832c19bbaf4c04e691b888c2dd4ab 100755 (executable)
@@ -1797,7 +1797,7 @@ proc toggle_or_diff {w x y} {
        $ui_index tag remove in_sel 0.0 end
        $ui_workdir tag remove in_sel 0.0 end
 
-       if {$col == 0} {
+       if {$col == 0 && $y > 1} {
                set i [expr {$lno-1}]
                set ll [expr {[llength $file_lists($w)]-1}]