git-gui: Corrected font used for options menu items.
[gitweb.git] / git-gui
diff --git a/git-gui b/git-gui
index b82e6e629f8eb3aba0f0b16479c3fcdfcc3b164a..008eeb44607cfb96aacc0823214c912ea74324d7 100755 (executable)
--- a/git-gui
+++ b/git-gui
@@ -1301,6 +1301,21 @@ proc console_init {w} {
        pack $w.m.t -side left -fill both -expand 1
        pack $w.m -side top -fill both -expand 1 -padx 5 -pady 10
 
+       menu $w.ctxm -tearoff 0
+       $w.ctxm add command -label "Copy" \
+               -font $font_ui \
+               -command "tk_textCopy $w.m.t"
+       $w.ctxm add command -label "Select All" \
+               -font $font_ui \
+               -command "$w.m.t tag add sel 0.0 end"
+       $w.ctxm add command -label "Copy All" \
+               -font $font_ui \
+               -command "
+                       $w.m.t tag add sel 0.0 end
+                       tk_textCopy $w.m.t
+                       $w.m.t tag remove sel 0.0 end
+               "
+
        button $w.ok -text {Running...} \
                -width 15 \
                -font $font_ui \
@@ -1308,6 +1323,7 @@ proc console_init {w} {
                -command "destroy $w"
        pack $w.ok -side bottom
 
+       bind $w.m.t <Any-Button-3> "tk_popup $w.ctxm %X %Y"
        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"
@@ -1494,10 +1510,15 @@ proc do_signoff {} {
                }
        }
 
-       set str "Signed-off-by: $GIT_COMMITTER_IDENT"
-       if {[$ui_comm get {end -1c linestart} {end -1c}] != $str} {
+       set sob "Signed-off-by: $GIT_COMMITTER_IDENT"
+       set last [$ui_comm get {end -1c linestart} {end -1c}]
+       if {$last != $sob} {
                $ui_comm edit separator
-               $ui_comm insert end "\n$str"
+               if {$last != {}
+                       && ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} {
+                       $ui_comm insert end "\n"
+               }
+               $ui_comm insert end "\n$sob"
                $ui_comm edit separator
                $ui_comm see end
        }
@@ -1547,7 +1568,7 @@ proc unclick {w x y} {
 
 set font_ui {Helvetica 10}
 set font_diff {Courier 10}
-set maincursor [. cget -cursor]
+set cursor_ptr left_ptr
 
 switch -glob -- "$tcl_platform(platform),$tcl_platform(os)" {
 windows,*   {set M1B Control; set M1T Ctrl}
@@ -1656,6 +1677,7 @@ menu .mbar.push
 menu .mbar.options
 .mbar.options add checkbutton \
        -label {Trust File Modification Timestamps} \
+       -font $font_ui \
        -offvalue false \
        -onvalue true \
        -variable cfg_trust_mtime
@@ -1674,8 +1696,8 @@ label .vpane.files.index.title -text {Modified Files} \
 text $ui_index -background white -borderwidth 0 \
        -width 40 -height 10 \
        -font $font_ui \
+       -cursor $cursor_ptr \
        -yscrollcommand {.vpane.files.index.sb set} \
-       -cursor $maincursor \
        -state disabled
 scrollbar .vpane.files.index.sb -command [list $ui_index yview]
 pack .vpane.files.index.title -side top -fill x
@@ -1691,8 +1713,8 @@ label .vpane.files.other.title -text {Untracked Files} \
 text $ui_other -background white -borderwidth 0 \
        -width 40 -height 10 \
        -font $font_ui \
+       -cursor $cursor_ptr \
        -yscrollcommand {.vpane.files.other.sb set} \
-       -cursor $maincursor \
        -state disabled
 scrollbar .vpane.files.other.sb -command [list $ui_other yview]
 pack .vpane.files.other.title -side top -fill x
@@ -1775,8 +1797,7 @@ text $ui_comm -background white -borderwidth 1 \
        -relief sunken \
        -width 75 -height 9 -wrap none \
        -font $font_diff \
-       -yscrollcommand {.vpane.lower.commarea.buffer.sby set} \
-       -cursor $maincursor
+       -yscrollcommand {.vpane.lower.commarea.buffer.sby set}
 scrollbar .vpane.lower.commarea.buffer.sby \
        -command [list $ui_comm yview]
 pack $ui_coml -side top -fill x
@@ -1784,6 +1805,38 @@ pack .vpane.lower.commarea.buffer.sby -side right -fill y
 pack $ui_comm -side left -fill y
 pack .vpane.lower.commarea.buffer -side left -fill y
 
+# -- Commit Message Buffer Context Menu
+#
+menu $ui_comm.ctxm -tearoff 0
+$ui_comm.ctxm add command -label "Cut" \
+       -font $font_ui \
+       -command "tk_textCut $ui_comm"
+$ui_comm.ctxm add command -label "Copy" \
+       -font $font_ui \
+       -command "tk_textCopy $ui_comm"
+$ui_comm.ctxm add command -label "Paste" \
+       -font $font_ui \
+       -command "tk_textPaste $ui_comm"
+$ui_comm.ctxm add command -label "Delete" \
+       -font $font_ui \
+       -command "$ui_comm delete sel.first sel.last"
+$ui_comm.ctxm add separator
+$ui_comm.ctxm add command -label "Select All" \
+       -font $font_ui \
+       -command "$ui_comm tag add sel 0.0 end"
+$ui_comm.ctxm add command -label "Copy All" \
+       -font $font_ui \
+       -command "
+               $ui_comm tag add sel 0.0 end
+               tk_textCopy $ui_comm
+               $ui_comm tag remove sel 0.0 end
+       "
+$ui_comm.ctxm add separator
+$ui_comm.ctxm add command -label "Sign Off" \
+       -font $font_ui \
+       -command do_signoff
+bind $ui_comm <Any-Button-3> "tk_popup $ui_comm.ctxm %X %Y"
+
 # -- Diff Header
 set ui_fname_value {}
 set ui_fstatus_value {}
@@ -1818,7 +1871,6 @@ text $ui_diff -background white -borderwidth 0 \
        -font $font_diff \
        -xscrollcommand {.vpane.lower.diff.body.sbx set} \
        -yscrollcommand {.vpane.lower.diff.body.sby set} \
-       -cursor $maincursor \
        -state disabled
 scrollbar .vpane.lower.diff.body.sbx -orient horizontal \
        -command [list $ui_diff xview]
@@ -1837,6 +1889,24 @@ $ui_diff tag conf di -foreground "#00a000"
 $ui_diff tag conf dni -foreground "#a000a0"
 $ui_diff tag conf bold -font [concat $font_diff bold]
 
+# -- Diff Body Context Menu
+#
+menu $ui_diff.ctxm -tearoff 0
+$ui_diff.ctxm add command -label "Copy" \
+       -font $font_ui \
+       -command "tk_textCopy $ui_diff"
+$ui_diff.ctxm add command -label "Select All" \
+       -font $font_ui \
+       -command "$ui_diff tag add sel 0.0 end"
+$ui_diff.ctxm add command -label "Copy All" \
+       -font $font_ui \
+       -command "
+               $ui_diff tag add sel 0.0 end
+               tk_textCopy $ui_diff
+               $ui_diff tag remove sel 0.0 end
+       "
+bind $ui_diff <Any-Button-3> "tk_popup $ui_diff.ctxm %X %Y"
+
 # -- Status Bar
 set ui_status_value {Initializing...}
 label .status -textvariable ui_status_value \