From: Pratyush Yadav Date: Sun, 28 Jul 2019 21:44:42 GMT Subject: Re: [PATCH] git-gui: Perform rescan on window focus-in Message-ID: In-Reply-To: <20190728151726.9188-1-me@yadavpratyush.com> Playing with it for some time, I see some problems with the patch. Firstly, "bind ." binds that event for the root window and all subwindows. This means we rescan multiple times on a single FocusIn event, once for every window. This can be fixed easily with a check for the root window (aka "."). I'll send a v2 patch with this change. Secondly, when the context menu is opened via right click, and then closed, it is recorded as a FocusIn event for our root window, even though the context menu is a child of the root window. This triggers a rescan. Unfortunately, I could not find a way to go around this behaviour. This means some unnecessary rescans, but the rescan looks like a pretty fast operation even on my slow hard disk, so it should probably not be a problem. If someone knows a way around the second issue, please let me know. On 28/07/19 8:47 PM, Pratyush Yadav wrote: > If any changes are made to the tree while git-gui is open, the user has > to manually rescan to see those changes in the gui. With this change, a > rescan will be performed whenever the window comes in focus, removing > the need for manual rescans in most cases. A manual rescan will still be > needed when something makes changes to the tree while git-gui is still > in focus. > > Signed-off-by: Pratyush Yadav > --- > git-gui/git-gui.sh | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh > index 6de74ce639..8ca2033dc8 100755 > --- a/git-gui/git-gui.sh > +++ b/git-gui/git-gui.sh > @@ -3849,6 +3849,7 @@ if {[is_enabled transport]} { > } > > bind . ui_do_rescan > +bind . do_rescan > bind . <$M1B-Key-r> ui_do_rescan > bind . <$M1B-Key-R> ui_do_rescan > bind . <$M1B-Key-s> do_signoff > -- Regards, Pratyush Yadav