On 8/6/19 11:52 PM, Junio C Hamano wrote:
Pratyush Yadav <me@xxxxxxxxxxxxxxxxx> writes:
If there are no comments/objections with this patch, can it be merged
please?
It usually works the other way around (no comments by default means
no interests), but sadly, a larger problem with this area is that
there currently is nobody who is actively working on maintaining the
'git-gui' project, which is a separate project that our tree merely
pulls from time to time. So we need to find a volunteer to run that
project, send the patch in that direction and get it merged, and
then finally we can pull from them X-<.
I'm not too optimistic on finding someone to run this project. I asked
on the list who the maintainer is [0], and no one came up. The repo at
[1] also seems abandoned.
So if I fork the project, will you pull from my fork? If yes, what
exactly would I have to do? Make a set of changes and then ask on the
list for you to pull from my fork?
I am a relatively inexperienced programmer, and it feels like a kinda
big responsibility that I'm not sure I am ready for. But maybe you can
look at the changes from a high level POV before pulling, so there is
someone sanity checking my changes.
[0]
https://public-inbox.org/git/35506bd2-aae9-6608-ed4d-a408e0c831b8@xxxxxxxxxxxxxxxxx/
[1] https://repo.or.cz/w/git-gui.git/
On 8/4/19 8:09 PM, Pratyush Yadav wrote:
If the toplevel window for the window being destroyed is the main window
(aka "."), then simply destroying it means the cleanup tasks are not
executed like saving the commit message buffer, saving window state,
etc. All this is handled by do_quit so, call it instead of directly
destroying the main window. For other toplevel windows, the old behavior
remains.
Signed-off-by: Pratyush Yadav <me@xxxxxxxxxxxxxxxxx>
---
git-gui/git-gui.sh | 19 +++++++++++++++++--
1 file 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 {} {
--
Regards,
Pratyush Yadav