Fossil SCM

Shortcuts G and SHIFT+G to load the default timeline, or the timeline around the current check-out.

florian 2022-10-02 09:15 timeline-keyboard-navigation
Commit 2ed74216fb54c2d5a1ff4d08fad2830ae7282f42765be9ff15f50cccd443eb4c
+21
--- src/graph.js
+++ src/graph.js
@@ -1011,10 +1011,12 @@
10111011
kCPYH = 66 /* B */,
10121012
kCPYB = mSHIFT | 66 /* SHIFT+B */,
10131013
kTMLN = 76 /* L */,
10141014
kTMLB = mSHIFT | 76 /* SHIFT+L */,
10151015
kVIEW = 75 /* K */,
1016
+ kVDEF = 71 /* G */,
1017
+ kVCUR = mSHIFT | 71 /* SHIFT+G */,
10161018
kDONE = 27 /* ESC */,
10171019
mod = evt.altKey<<15 | evt.ctrlKey<<14 | evt.shiftKey<<13,
10181020
key = ( evt.which || evt.keyCode ) | mod;
10191021
var dx = 0;
10201022
switch( key ){
@@ -1030,10 +1032,12 @@
10301032
case kCPYH:
10311033
case kCPYB:
10321034
case kTMLN:
10331035
case kTMLB:
10341036
case kVIEW:
1037
+ case kVDEF:
1038
+ case kVCUR:
10351039
case kDONE: break;
10361040
default: return;
10371041
}
10381042
evt.preventDefault();
10391043
evt.stopPropagation();
@@ -1067,10 +1071,27 @@
10671071
copyTextToClipboard(
10681072
key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch);
10691073
}
10701074
}
10711075
return;
1076
+ }
1077
+ else if( key==kVDEF || key==kVCUR ){
1078
+ var ri = timelineGetRowInfo('m1');
1079
+ if( ri ){
1080
+ var page;
1081
+ switch( key ){
1082
+ case kVDEF:
1083
+ page = '/timeline';
1084
+ break;
1085
+ case kVCUR:
1086
+ page = '/timeline?c=current';
1087
+ break;
1088
+ }
1089
+ var href = ri.baseurl + page;
1090
+ if( href!=location.href.slice(-href.length) ) location.href = href;
1091
+ }
1092
+ return;
10721093
}
10731094
else if( key==kDONE ){
10741095
focusCacheSet(null);
10751096
focusVisualize(null,false);
10761097
focusCookieClear();
10771098
--- src/graph.js
+++ src/graph.js
@@ -1011,10 +1011,12 @@
1011 kCPYH = 66 /* B */,
1012 kCPYB = mSHIFT | 66 /* SHIFT+B */,
1013 kTMLN = 76 /* L */,
1014 kTMLB = mSHIFT | 76 /* SHIFT+L */,
1015 kVIEW = 75 /* K */,
 
 
1016 kDONE = 27 /* ESC */,
1017 mod = evt.altKey<<15 | evt.ctrlKey<<14 | evt.shiftKey<<13,
1018 key = ( evt.which || evt.keyCode ) | mod;
1019 var dx = 0;
1020 switch( key ){
@@ -1030,10 +1032,12 @@
1030 case kCPYH:
1031 case kCPYB:
1032 case kTMLN:
1033 case kTMLB:
1034 case kVIEW:
 
 
1035 case kDONE: break;
1036 default: return;
1037 }
1038 evt.preventDefault();
1039 evt.stopPropagation();
@@ -1067,10 +1071,27 @@
1067 copyTextToClipboard(
1068 key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch);
1069 }
1070 }
1071 return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1072 }
1073 else if( key==kDONE ){
1074 focusCacheSet(null);
1075 focusVisualize(null,false);
1076 focusCookieClear();
1077
--- src/graph.js
+++ src/graph.js
@@ -1011,10 +1011,12 @@
1011 kCPYH = 66 /* B */,
1012 kCPYB = mSHIFT | 66 /* SHIFT+B */,
1013 kTMLN = 76 /* L */,
1014 kTMLB = mSHIFT | 76 /* SHIFT+L */,
1015 kVIEW = 75 /* K */,
1016 kVDEF = 71 /* G */,
1017 kVCUR = mSHIFT | 71 /* SHIFT+G */,
1018 kDONE = 27 /* ESC */,
1019 mod = evt.altKey<<15 | evt.ctrlKey<<14 | evt.shiftKey<<13,
1020 key = ( evt.which || evt.keyCode ) | mod;
1021 var dx = 0;
1022 switch( key ){
@@ -1030,10 +1032,12 @@
1032 case kCPYH:
1033 case kCPYB:
1034 case kTMLN:
1035 case kTMLB:
1036 case kVIEW:
1037 case kVDEF:
1038 case kVCUR:
1039 case kDONE: break;
1040 default: return;
1041 }
1042 evt.preventDefault();
1043 evt.stopPropagation();
@@ -1067,10 +1071,27 @@
1071 copyTextToClipboard(
1072 key==kCPYH ? ri.hash.slice(0,ri.hashdigits) : ri.branch);
1073 }
1074 }
1075 return;
1076 }
1077 else if( key==kVDEF || key==kVCUR ){
1078 var ri = timelineGetRowInfo('m1');
1079 if( ri ){
1080 var page;
1081 switch( key ){
1082 case kVDEF:
1083 page = '/timeline';
1084 break;
1085 case kVCUR:
1086 page = '/timeline?c=current';
1087 break;
1088 }
1089 var href = ri.baseurl + page;
1090 if( href!=location.href.slice(-href.length) ) location.href = href;
1091 }
1092 return;
1093 }
1094 else if( key==kDONE ){
1095 focusCacheSet(null);
1096 focusVisualize(null,false);
1097 focusCookieClear();
1098
--- src/timeline.c
+++ src/timeline.c
@@ -1646,10 +1646,12 @@
16461646
** b Copy commit hash of focused entry to clipboard.
16471647
** B Copy branch name of focused entry to clipboard.
16481648
** l View timeline of focused entry.
16491649
** L View timeline of focused entry filtered by branch.
16501650
** k View details of focused entry.
1651
+** g View default timeline.
1652
+** G View timeline around current (check-out) entry.
16511653
** ESC Disable keyboard navigation mode.
16521654
*/
16531655
void page_timeline(void){
16541656
Stmt q; /* Query used to generate the timeline */
16551657
Blob sql; /* text of SQL used to generate timeline */
16561658
--- src/timeline.c
+++ src/timeline.c
@@ -1646,10 +1646,12 @@
1646 ** b Copy commit hash of focused entry to clipboard.
1647 ** B Copy branch name of focused entry to clipboard.
1648 ** l View timeline of focused entry.
1649 ** L View timeline of focused entry filtered by branch.
1650 ** k View details of focused entry.
 
 
1651 ** ESC Disable keyboard navigation mode.
1652 */
1653 void page_timeline(void){
1654 Stmt q; /* Query used to generate the timeline */
1655 Blob sql; /* text of SQL used to generate timeline */
1656
--- src/timeline.c
+++ src/timeline.c
@@ -1646,10 +1646,12 @@
1646 ** b Copy commit hash of focused entry to clipboard.
1647 ** B Copy branch name of focused entry to clipboard.
1648 ** l View timeline of focused entry.
1649 ** L View timeline of focused entry filtered by branch.
1650 ** k View details of focused entry.
1651 ** g View default timeline.
1652 ** G View timeline around current (check-out) entry.
1653 ** ESC Disable keyboard navigation mode.
1654 */
1655 void page_timeline(void){
1656 Stmt q; /* Query used to generate the timeline */
1657 Blob sql; /* text of SQL used to generate timeline */
1658

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button