зеркало из https://github.com/microsoft/git.git
git-gui: Use vi-like keys in merge dialog
Since we support vi-like keys for scrolling in other UI contexts we can easily do so here too. Tk's handy little `event generate' makes this a lot easier than I thought it would be. We may want to go back and fix some of the other vi-like bindings to redirect to the arrow and pageup/pagedown keys, rather than running the view changes directly. I've bound 'v' to visualize, as this is a somewhat common thing to want to do in the merge dialog. Control (or Command) Return is also bound to start the merge, much as it is bound in the main window to activate the commit. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Родитель
1fc4ba86f8
Коммит
ebcaadabcb
|
@ -160,6 +160,7 @@ You can attempt this merge again by merging only one branch at a time." $w
|
||||||
|
|
||||||
proc dialog {} {
|
proc dialog {} {
|
||||||
global current_branch
|
global current_branch
|
||||||
|
global M1B
|
||||||
|
|
||||||
if {![_can_merge]} return
|
if {![_can_merge]} return
|
||||||
|
|
||||||
|
@ -197,20 +198,20 @@ proc dialog {} {
|
||||||
toplevel $w
|
toplevel $w
|
||||||
wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
|
wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
|
||||||
|
|
||||||
|
set _visualize [namespace code [list _visualize $w $to_show]]
|
||||||
|
set _start [namespace code [list _start $w $to_show]]
|
||||||
|
|
||||||
label $w.header \
|
label $w.header \
|
||||||
-text "Merge Into $current_branch" \
|
-text "Merge Into $current_branch" \
|
||||||
-font font_uibold
|
-font font_uibold
|
||||||
pack $w.header -side top -fill x
|
pack $w.header -side top -fill x
|
||||||
|
|
||||||
frame $w.buttons
|
frame $w.buttons
|
||||||
button $w.buttons.visualize -text Visualize \
|
button $w.buttons.visualize -text Visualize -command $_visualize
|
||||||
-command [namespace code [list _visualize $w $to_show]]
|
|
||||||
pack $w.buttons.visualize -side left
|
pack $w.buttons.visualize -side left
|
||||||
button $w.buttons.create -text Merge \
|
button $w.buttons.create -text Merge -command $_start
|
||||||
-command [namespace code [list _start $w $to_show]]
|
|
||||||
pack $w.buttons.create -side right
|
pack $w.buttons.create -side right
|
||||||
button $w.buttons.cancel -text {Cancel} \
|
button $w.buttons.cancel -text {Cancel} -command [list destroy $w]
|
||||||
-command [list destroy $w]
|
|
||||||
pack $w.buttons.cancel -side right -padx 5
|
pack $w.buttons.cancel -side right -padx 5
|
||||||
pack $w.buttons -side bottom -fill x -pady 10 -padx 10
|
pack $w.buttons -side bottom -fill x -pady 10 -padx 10
|
||||||
|
|
||||||
|
@ -237,6 +238,13 @@ proc dialog {} {
|
||||||
$subj([lindex $ref 0])]
|
$subj([lindex $ref 0])]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bind $w.source.l <Key-k> [list event generate %W <Key-Up>]
|
||||||
|
bind $w.source.l <Key-j> [list event generate %W <Key-Down>]
|
||||||
|
bind $w.source.l <Key-h> [list event generate %W <Key-Left>]
|
||||||
|
bind $w.source.l <Key-l> [list event generate %W <Key-Right>]
|
||||||
|
bind $w.source.l <Key-v> $_visualize
|
||||||
|
|
||||||
|
bind $w <$M1B-Key-Return> $_start
|
||||||
bind $w <Visibility> "grab $w; focus $w.source.l"
|
bind $w <Visibility> "grab $w; focus $w.source.l"
|
||||||
bind $w <Key-Escape> "unlock_index;destroy $w"
|
bind $w <Key-Escape> "unlock_index;destroy $w"
|
||||||
bind $w <Destroy> unlock_index
|
bind $w <Destroy> unlock_index
|
||||||
|
|
Загрузка…
Ссылка в новой задаче