Re: [PATCH] git-gui: Perform rescan on window focus-in

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <me@xxxxxxxxxxxxxxxxx>
---
  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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux