threads / discuss / 31691

gitk: can't reload commits with new key binding

Subject: gitk: can't reload commits with new key binding

## tl;dr

11 messages between Sep 30, 2012 and Oct 21, 2012.

replies: 10people: 4as markdown or json

SZEDER Gábor· Sep 30, 2012, 10:19 UTC · lore
Hi,

a135f214 (gitk: Avoid Meta1-F5, 2012-04-07) changed the key binding for reloading commits to shift-F5, but this new key binding doesn't seem to be working here, because it doesn't call reloadcommits(). Choosing the reload menu item works. Shift-F5 works properly in other applications.

Any ideas?

Thanks, Gábor

Andrew Wong· Oct 1, 2012, 15:26 UTC · re: SZEDER Gábor · lore

Re: gitk: can't reload commits with new key binding

Sorry, my previous "git send-email" screwed up. Resending the email again.

I was running into the same issue too. It turns out that on some machines Shift-F5 is mapped to Shift-XF86_Switch_VT_5. My patch includes a workaround. The same workaround was used for Shift-F4.

Andrew Wong (1):
  gitk: Add workaround for system where Shift-F5 mapped to
    Shift-XF86_Switch_VT_5
 gitk-git/gitk | 1 +
 1 file changed, 1 insertion(+)
-- 
1.7.12.1.382.gb0576a6
Andrew Wong· Oct 1, 2012, 15:26 UTC · re: Andrew Wong · lore

[PATCH] gitk: Add workaround for system where Shift-F5 mapped to Shift-XF86_Switch_VT_5

The same workaround was used for Shift-F4 in:
  cea07cf8dc9b3677e0c50433c0d72bce83adbdc7
Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
---
 gitk-git/gitk | 1 +
 1 file changed, 1 insertion(+)
diff --git a/gitk-git/gitk b/gitk-git/gitk
index d93bd99..698b84a 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -2496,6 +2496,7 @@ proc makewindow {} {
     bindkey f nextfile
     bind . <F5> updatecommits
     bind . <Shift-F5> reloadcommits
+    catch { bind . <Shift-Key-XF86_Switch_VT_5> reloadcommits }
     bind . <F2> showrefs
     bind . <Shift-F4> {newview 0}
     catch { bind . <Shift-Key-XF86_Switch_VT_4> {newview 0} }
-- 
1.7.12.1.382.gb0576a6
Junio C Hamano· Oct 1, 2012, 17:27 UTC · re: Andrew Wong · lore

Re: [PATCH] gitk: Add workaround for system where Shift-F5 mapped to Shift-XF86_Switch_VT_5

Andrew Wong <andrew.kw.w@gmail.com> writes:
Show 20 quoted lines
> The same workaround was used for Shift-F4 in:
>   cea07cf8dc9b3677e0c50433c0d72bce83adbdc7
>
> Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
> ---
>  gitk-git/gitk | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/gitk-git/gitk b/gitk-git/gitk
> index d93bd99..698b84a 100755
> --- a/gitk-git/gitk
> +++ b/gitk-git/gitk
> @@ -2496,6 +2496,7 @@ proc makewindow {} {
>      bindkey f nextfile
>      bind . <F5> updatecommits
>      bind . <Shift-F5> reloadcommits
> +    catch { bind . <Shift-Key-XF86_Switch_VT_5> reloadcommits }
>      bind . <F2> showrefs
>      bind . <Shift-F4> {newview 0}
>      catch { bind . <Shift-Key-XF86_Switch_VT_4> {newview 0} }

Wouldn't it make more sense to have a small helper function to wrap binding both <Shift-Fn> and <Shift-Key-XF86_Switch_VT_n> to the same thing and have F4 and F5 binding use that to avoid repetition?

Andrew Wong· Oct 2, 2012, 15:04 UTC · re: Junio C Hamano · lore

[PATCH v2 0/2] Re: gitk: can't reload commits with new key binding

Refactored the code for binding modified function keys as Junio suggested.
Andrew Wong (2):
  gitk: Refactor code for binding modified function keys
  gitk: Use bindshiftfunctionkey to bind Shift-F5
 gitk | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
-- 
1.7.12.1.382.gb0576a6
Andrew Wong· Oct 2, 2012, 15:04 UTC · re: Andrew Wong · lore

[PATCH v2 1/2] gitk: Refactor code for binding modified function keys

The function includes a workaround for systems where F* keys are mapped to XF86_Switch_VT_* when modifiers are used.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
---
 gitk | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/gitk b/gitk
index 379582a..f8f89a5 100755
--- a/gitk
+++ b/gitk
@@ -2503,8 +2503,7 @@ proc makewindow {} {
     bind . <F5> updatecommits
     bind . <Shift-F5> reloadcommits
     bind . <F2> showrefs
-    bind . <Shift-F4> {newview 0}
-    catch { bind . <Shift-Key-XF86_Switch_VT_4> {newview 0} }
+    bindmodfunctionkey Shift 4 {newview 0}
     bind . <F4> edit_or_newview
     bind . <$M1B-q> doquit
     bind . <$M1B-f> {dofind 1 1}
@@ -2653,6 +2652,11 @@ proc bindkey {ev script} {
     }
 }
 
+proc bindmodfunctionkey {mod n script} {
+    bind . <$mod-F$n> $script
+    catch { bind . <$mod-XF86_Switch_VT_$n> $script }
+}
+
 # set the focus back to the toplevel for any click outside
 # the entry widgets
 proc click {w} {
-- 
1.7.12.1.382.gb0576a6
Andrew Wong· Oct 2, 2012, 15:04 UTC · re: Andrew Wong · lore

[PATCH v2 2/2] gitk: Use bindshiftfunctionkey to bind Shift-F5

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
---
 gitk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitk b/gitk
index f8f89a5..d53fdb2 100755
--- a/gitk
+++ b/gitk
@@ -2501,7 +2501,7 @@ proc makewindow {} {
     bindkey ? {dofind -1 1}
     bindkey f nextfile
     bind . <F5> updatecommits
-    bind . <Shift-F5> reloadcommits
+    bindmodfunctionkey Shift 5 reloadcommits
     bind . <F2> showrefs
     bindmodfunctionkey Shift 4 {newview 0}
     bind . <F4> edit_or_newview
-- 
1.7.12.1.382.gb0576a6
Andrew Wong· Oct 7, 2012, 21:18 UTC · re: Andrew Wong · lore

Re: [PATCH v2 0/2] Re: gitk: can't reload commits with new key binding

Could we look into getting this patch into git/gitk?
On 10/02/12 11:04, Andrew Wong wrote:
Show 9 quoted lines
> Refactored the code for binding modified function keys as Junio suggested.
>
> Andrew Wong (2):
>   gitk: Refactor code for binding modified function keys
>   gitk: Use bindshiftfunctionkey to bind Shift-F5
>
>  gitk | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
SZEDER Gábor· Oct 8, 2012, 21:05 UTC · re: Andrew Wong · lore

Re: [PATCH v2 0/2] Re: gitk: can't reload commits with new key binding

Hi,
(Sorry for the delayed reply, was out of town.)
On Tue, Oct 02, 2012 at 11:04:43AM -0400, Andrew Wong wrote:
Show 6 quoted lines
> Refactored the code for binding modified function keys as Junio suggested.
> 
> Andrew Wong (2):
>   gitk: Refactor code for binding modified function keys
>   gitk: Use bindshiftfunctionkey to bind Shift-F5
> 
Thanks, this series solves the problem for me.

Best, Gábor

Andrew Wong· Oct 12, 2012, 14:17 UTC · re: Andrew Wong · lore

Re: [PATCH v2 0/2] Re: gitk: can't reload commits with new key binding

Can I get some feedback on these two patches? It'd be great to have them merged into gitk. Thanks.

On 10/02/2012 11:04 AM, Andrew Wong wrote:
Show 9 quoted lines
> Refactored the code for binding modified function keys as Junio suggested.
>
> Andrew Wong (2):
>    gitk: Refactor code for binding modified function keys
>    gitk: Use bindshiftfunctionkey to bind Shift-F5
>
>   gitk | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
Paul Mackerras· Oct 21, 2012, 22:19 UTC · re: Andrew Wong · lore

Re: [PATCH v2 0/2] Re: gitk: can't reload commits with new key binding

On Tue, Oct 02, 2012 at 11:04:43AM -0400, Andrew Wong wrote:
Show 8 quoted lines
> Refactored the code for binding modified function keys as Junio suggested.
> 
> Andrew Wong (2):
>   gitk: Refactor code for binding modified function keys
>   gitk: Use bindshiftfunctionkey to bind Shift-F5
> 
>  gitk | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
Thanks, applied both patches.
Paul.

← back to recent threads