Fossil SCM
Change the "untick" and "copy hash/branch" handlers to not activate keyboard navigation mode, i.e. "untick" is also available in combination with mouse scrolling, and "copy hash/branch" requires a focused entry, instead of focusing an entry without copying its data.
Commit
1d5e6e3cae2f2d502dc6417177878362a06312ef2c28d8980d7c4a6f8780dbf4
Parent
a4db0b2cfa91197…
1 file changed
+20
-15
+20
-15
| --- src/graph.js | ||
| +++ src/graph.js | ||
| @@ -968,11 +968,30 @@ | ||
| 968 | 968 | case kTMLN: break; |
| 969 | 969 | case kVIEW: break; |
| 970 | 970 | case kDONE: break; |
| 971 | 971 | default: return; |
| 972 | 972 | } |
| 973 | - if( key==kDONE ){ | |
| 973 | + if( key==kUNTK ){ | |
| 974 | + var tid = focusTickedId(); | |
| 975 | + if( tid ){ | |
| 976 | + var gn = document.getElementById('tln'+tid.slice(1)); | |
| 977 | + if( gn ) gn.click(); | |
| 978 | + } | |
| 979 | + return; | |
| 980 | + } | |
| 981 | + else if( key==kCPYH || key==kCPYB ){ | |
| 982 | + var fid = focusCacheGet(); | |
| 983 | + if( fid ){ | |
| 984 | + var ri = timelineGetRowInfo(fid); | |
| 985 | + if( ri ){ | |
| 986 | + copyTextToClipboard( | |
| 987 | + key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch); | |
| 988 | + } | |
| 989 | + } | |
| 990 | + return; | |
| 991 | + } | |
| 992 | + else if( key==kDONE ){ | |
| 974 | 993 | focusCacheSet(null); |
| 975 | 994 | focusVisualize(null,false); |
| 976 | 995 | document.cookie = |
| 977 | 996 | 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/'; |
| 978 | 997 | return; |
| @@ -991,24 +1010,10 @@ | ||
| 991 | 1010 | } |
| 992 | 1011 | else if( key==kTICK ){ |
| 993 | 1012 | var gn = document.getElementById('tln'+id.slice(1)); |
| 994 | 1013 | if( gn ) gn.click(); |
| 995 | 1014 | } |
| 996 | - else if( key==kUNTK ){ | |
| 997 | - var tid = focusTickedId(); | |
| 998 | - if( tid ){ | |
| 999 | - var gn = document.getElementById('tln'+tid.slice(1)); | |
| 1000 | - if( gn ) gn.click(); | |
| 1001 | - } | |
| 1002 | - } | |
| 1003 | - else if( key==kCPYH || key==kCPYB ){ | |
| 1004 | - var ri = timelineGetRowInfo(id); | |
| 1005 | - if( ri ){ | |
| 1006 | - copyTextToClipboard( | |
| 1007 | - key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch); | |
| 1008 | - } | |
| 1009 | - } | |
| 1010 | 1015 | else/* if( key==kTMLN || key==kVIEW )*/{ |
| 1011 | 1016 | var ri = timelineGetRowInfo(id); |
| 1012 | 1017 | if( ri ){ |
| 1013 | 1018 | var page = key==kVIEW ? '/info/' : '/timeline?c='; |
| 1014 | 1019 | var href = ri.baseurl + page + encodeURIComponent(ri.hash); |
| 1015 | 1020 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -968,11 +968,30 @@ | |
| 968 | case kTMLN: break; |
| 969 | case kVIEW: break; |
| 970 | case kDONE: break; |
| 971 | default: return; |
| 972 | } |
| 973 | if( key==kDONE ){ |
| 974 | focusCacheSet(null); |
| 975 | focusVisualize(null,false); |
| 976 | document.cookie = |
| 977 | 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/'; |
| 978 | return; |
| @@ -991,24 +1010,10 @@ | |
| 991 | } |
| 992 | else if( key==kTICK ){ |
| 993 | var gn = document.getElementById('tln'+id.slice(1)); |
| 994 | if( gn ) gn.click(); |
| 995 | } |
| 996 | else if( key==kUNTK ){ |
| 997 | var tid = focusTickedId(); |
| 998 | if( tid ){ |
| 999 | var gn = document.getElementById('tln'+tid.slice(1)); |
| 1000 | if( gn ) gn.click(); |
| 1001 | } |
| 1002 | } |
| 1003 | else if( key==kCPYH || key==kCPYB ){ |
| 1004 | var ri = timelineGetRowInfo(id); |
| 1005 | if( ri ){ |
| 1006 | copyTextToClipboard( |
| 1007 | key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch); |
| 1008 | } |
| 1009 | } |
| 1010 | else/* if( key==kTMLN || key==kVIEW )*/{ |
| 1011 | var ri = timelineGetRowInfo(id); |
| 1012 | if( ri ){ |
| 1013 | var page = key==kVIEW ? '/info/' : '/timeline?c='; |
| 1014 | var href = ri.baseurl + page + encodeURIComponent(ri.hash); |
| 1015 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -968,11 +968,30 @@ | |
| 968 | case kTMLN: break; |
| 969 | case kVIEW: break; |
| 970 | case kDONE: break; |
| 971 | default: return; |
| 972 | } |
| 973 | if( key==kUNTK ){ |
| 974 | var tid = focusTickedId(); |
| 975 | if( tid ){ |
| 976 | var gn = document.getElementById('tln'+tid.slice(1)); |
| 977 | if( gn ) gn.click(); |
| 978 | } |
| 979 | return; |
| 980 | } |
| 981 | else if( key==kCPYH || key==kCPYB ){ |
| 982 | var fid = focusCacheGet(); |
| 983 | if( fid ){ |
| 984 | var ri = timelineGetRowInfo(fid); |
| 985 | if( ri ){ |
| 986 | copyTextToClipboard( |
| 987 | key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch); |
| 988 | } |
| 989 | } |
| 990 | return; |
| 991 | } |
| 992 | else if( key==kDONE ){ |
| 993 | focusCacheSet(null); |
| 994 | focusVisualize(null,false); |
| 995 | document.cookie = |
| 996 | 'fossil_timeline_kbnav=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/'; |
| 997 | return; |
| @@ -991,24 +1010,10 @@ | |
| 1010 | } |
| 1011 | else if( key==kTICK ){ |
| 1012 | var gn = document.getElementById('tln'+id.slice(1)); |
| 1013 | if( gn ) gn.click(); |
| 1014 | } |
| 1015 | else/* if( key==kTMLN || key==kVIEW )*/{ |
| 1016 | var ri = timelineGetRowInfo(id); |
| 1017 | if( ri ){ |
| 1018 | var page = key==kVIEW ? '/info/' : '/timeline?c='; |
| 1019 | var href = ri.baseurl + page + encodeURIComponent(ri.hash); |
| 1020 |