git-gui: Misc. bug fixes for mouse click crashes.
authorShawn O. Pearce <spearce@spearce.org>
Sun, 12 Nov 2006 01:00:35 +0000 (20:00 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 12 Nov 2006 05:16:03 +0000 (00:16 -0500)
Make sure the file_lists array has both elements set at all times,
otherwise we get Tcl errors during mouse clicks in the file list
areas due to the list not being defined.

Also added M1-A as a keyboard binding within the console window
text area.  This lets users select all text easily and copy it
to the clipboard.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui

diff --git a/git-gui b/git-gui
index f8c51590b04a664bb5dd149d330d6ef44d37c665..b82e6e629f8eb3aba0f0b16479c3fcdfcc3b164a 100755 (executable)
--- a/git-gui
+++ b/git-gui
@@ -960,7 +960,9 @@ proc display_all_files {} {
        $ui_index delete 0.0 end
        $ui_other delete 0.0 end
 
-       array unset file_lists
+       set file_lists($ui_index) [list]
+       set file_lists($ui_other) [list]
+
        foreach path [lsort [array names file_states]] {
                set s $file_states($path)
                set m [lindex $s 0]
@@ -1273,7 +1275,7 @@ proc new_console {short_title long_title} {
 
 proc console_init {w} {
        global console_cr console_data
-       global gitdir appname font_ui font_diff
+       global gitdir appname font_ui font_diff M1B
 
        set console_cr($w) 1.0
        toplevel $w
@@ -1306,6 +1308,8 @@ proc console_init {w} {
                -command "destroy $w"
        pack $w.ok -side bottom
 
+       bind $w.m.t <$M1B-Key-a> "$w.m.t tag add sel 0.0 end;break"
+       bind $w.m.t <$M1B-Key-A> "$w.m.t tag add sel 0.0 end;break"
        bind $w <Visibility> "focus $w"
        wm title $w "$appname ([lindex [file split \
                [file normalize [file dirname $gitdir]]] \
@@ -1900,7 +1904,10 @@ foreach i [list $ui_index $ui_other] {
        bind $i <Button-3> {click %W %x %y 3 %X %Y; break}
        bind $i <ButtonRelease-1> {unclick %W %x %y; break}
 }
-unset i M1B M1T
+unset i
+
+set file_lists($ui_index) [list]
+set file_lists($ui_other) [list]
 
 wm title . "$appname ([file normalize [file dirname $gitdir]])"
 focus -force $ui_comm