Re: [PATCH] git-gui: Perform rescan on window focus-in
- From
Pratyush Yadav <me@yadavpratyush.com>
- Date
- Jul 28, 2019, 21:44 UTC
- Message-ID
- <c3cdbaba-ed57-ce6c-6c07-1e4fe8cc533f@yadavpratyush.com>
- 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:
Show 25 quoted lines
> 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 <me@yadavpratyush.com>
> ---
> 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 . <Key-F5> ui_do_rescan
> +bind . <FocusIn> 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