aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2016-02-16 16:42:06 +0100
committerJohannes Schindelin <johannes.schindelin@gmx.de>2025-01-11 18:17:42 +0100
commitac75b4c265952e382dbd67018058a853393d4ecd (patch)
tree1ac3936a42c801af52d30e0724626c144a882a7d
parentgitk: Use an external icon file on Windows (diff)
downloadgit-ac75b4c265952e382dbd67018058a853393d4ecd.tar.gz
git-ac75b4c265952e382dbd67018058a853393d4ecd.zip
gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6
Tcl/Tk 8.6 introduced new events for the cursor left/right keys and apparently changed the behavior of the previous event. Let's work around that by using the new events when we are running with Tcl/Tk 8.6 or later. This fixes https://github.com/git-for-windows/git/issues/495 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
-rwxr-xr-xgitk12
1 files changed, 9 insertions, 3 deletions
diff --git a/gitk b/gitk
index 96b87df5d0..5b9b1f64fd 100755
--- a/gitk
+++ b/gitk
@@ -2238,7 +2238,7 @@ proc makewindow {} {
global headctxmenu progresscanv progressitem progresscoords statusw
global fprogitem fprogcoord lastprogupdate progupdatepending
global rprogitem rprogcoord rownumsel numcommits
- global have_tk85 use_ttk NS
+ global have_tk85 have_tk86 use_ttk NS
global git_version
global worddiff
@@ -2736,8 +2736,13 @@ proc makewindow {} {
bind . <Key-Down> "selnextline 1"
bind . <Shift-Key-Up> "dofind -1 0"
bind . <Shift-Key-Down> "dofind 1 0"
- bindkey <Key-Right> "goforw"
- bindkey <Key-Left> "goback"
+ if {$have_tk86} {
+ bindkey <<NextChar>> "goforw"
+ bindkey <<PrevChar>> "goback"
+ } else {
+ bindkey <Key-Right> "goforw"
+ bindkey <Key-Left> "goback"
+ }
bind . <Key-Prior> "selnextpage -1"
bind . <Key-Next> "selnextpage 1"
bind . <$M1B-Home> "allcanvs yview moveto 0.0"
@@ -12772,6 +12777,7 @@ set nullid2 "0000000000000000000000000000000000000001"
set nullfile "/dev/null"
set have_tk85 [expr {[package vcompare $tk_version "8.5"] >= 0}]
+set have_tk86 [expr {[package vcompare $tk_version "8.6"] >= 0}]
if {![info exists have_ttk]} {
set have_ttk [llength [info commands ::ttk::style]]
}