diff options
-rwxr-xr-x | git-gui/git-gui.sh | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 6de74ce639..6ec562d5da 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -3030,8 +3030,23 @@ unset doc_path doc_url wm protocol . WM_DELETE_WINDOW do_quit bind all <$M1B-Key-q> do_quit bind all <$M1B-Key-Q> do_quit -bind all <$M1B-Key-w> {destroy [winfo toplevel %W]} -bind all <$M1B-Key-W> {destroy [winfo toplevel %W]} + +set m1b_w_script { + set toplvl_win [winfo toplevel %W] + + # If we are destroying the main window, we should call do_quit to take + # care of cleanup before exiting the program. + if {$toplvl_win eq "."} { + do_quit + } else { + destroy $toplvl_win + } +} + +bind all <$M1B-Key-w> $m1b_w_script +bind all <$M1B-Key-W> $m1b_w_script + +unset m1b_w_script set subcommand_args {} proc usage {} { |