On Wed, Sep 4, 2019 at 8:00 PM Birger Skogeng Pedersen <birger.sp@xxxxxxxxx> wrote: > > Selecting whether to do a "New Commit" or "Amend Last Commit" does not have > a hotkey. > > With this patch, the user may toggle between the two options with > CTRL/CMD+e. > > Signed-off-by: Birger Skogeng Pedersen <birger.sp@xxxxxxxxx> > Signed-off-by: Bert Wesarg <bert.wesarg@xxxxxxxxxxxxxx> > --- > git-gui.sh | 40 +++++++++++++++++++++++++++++++++++----- > 1 file changed, 35 insertions(+), 5 deletions(-) > > diff --git a/git-gui.sh b/git-gui.sh > index 5bc21b8..47c5db0 100755 > --- a/git-gui.sh > +++ b/git-gui.sh > @@ -1445,7 +1445,7 @@ proc force_amend {} { > set commit_type $newType > > set selected_commit_type amend > - do_select_commit_type > + ui_select_commit_type > } > > proc rescan {after {honor_trustmtime 1}} { > @@ -2640,6 +2640,16 @@ proc show_less_context {} { > } > } > > +proc toggle_commit_type {} { > + global selected_commit_type > + if {[string match amend* $selected_commit_type]} { only $commit_type has multiple incarnations of amend, thus this should have been $commit_type here. Though I posted new patches which convert it first to b a checkbutton and than addedyour keybinding patch on top of it. Bert > + set selected_commit_type new > + } else { > + set selected_commit_type amend > + } > + ui_select_commit_type > +} > + > ###################################################################### > ## > ## ui construction > @@ -2824,13 +2834,31 @@ proc commit_btn_caption {} { > } > } > > +proc ui_select_commit_type {} { > + global selected_commit_type > + global ui_commit_type_commit ui_commit_type_amend > + > + do_select_commit_type > + if {$selected_commit_type eq {new}} { > + .mbar.commit entryconf [mc "New Commit"] \ > + -accelerator {} > + .mbar.commit entryconf [mc "Amend Last Commit"] \ > + -accelerator $::M1T-E > + } elseif {$selected_commit_type eq {amend}} { > + .mbar.commit entryconf [mc "New Commit"] \ > + -accelerator $::M1T-E > + .mbar.commit entryconf [mc "Amend Last Commit"] \ > + -accelerator {} > + } > +} > + > if {[is_enabled multicommit] || [is_enabled singlecommit]} { > menu .mbar.commit > > if {![is_enabled nocommit]} { > .mbar.commit add radiobutton \ > -label [mc "New Commit"] \ > - -command do_select_commit_type \ > + -command ui_select_commit_type \ > -variable selected_commit_type \ > -value new > lappend disable_on_lock \ > @@ -2838,7 +2866,8 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} { > > .mbar.commit add radiobutton \ > -label [mc "Amend Last Commit"] \ > - -command do_select_commit_type \ > + -accelerator $M1T-E \ > + -command ui_select_commit_type \ > -variable selected_commit_type \ > -value amend > lappend disable_on_lock \ > @@ -3315,14 +3344,14 @@ set ui_coml .vpane.lower.commarea.buffer.header.l > if {![is_enabled nocommit]} { > ${NS}::radiobutton .vpane.lower.commarea.buffer.header.new \ > -text [mc "New Commit"] \ > - -command do_select_commit_type \ > + -command ui_select_commit_type \ > -variable selected_commit_type \ > -value new > lappend disable_on_lock \ > [list .vpane.lower.commarea.buffer.header.new conf -state] > ${NS}::radiobutton .vpane.lower.commarea.buffer.header.amend \ > -text [mc "Amend Last Commit"] \ > - -command do_select_commit_type \ > + -command ui_select_commit_type \ > -variable selected_commit_type \ > -value amend > lappend disable_on_lock \ > @@ -3843,6 +3872,7 @@ bind . <$M1B-Key-equal> {show_more_context;break} > bind . <$M1B-Key-plus> {show_more_context;break} > bind . <$M1B-Key-KP_Add> {show_more_context;break} > bind . <$M1B-Key-Return> do_commit > +bind . <$M1B-Key-e> toggle_commit_type > foreach i [list $ui_index $ui_workdir] { > bind $i <Button-1> { toggle_or_diff click %W %x %y; break } > bind $i <$M1B-Button-1> { add_one_to_selection %W %x %y; break } > -- > 2.21.0.windows.1 >