Fossil SCM
Swap semantics of the "primary" and "secondary" highlighted entries to improve selection of the default focused entry. The "secondary" corresponds to the "To:" entry on /vdiff pages and hance is the last focused entry, so should also be the default when returning to /timeline both by keyboard shortcut or the browser "backwards" command. Thanks @rouilj for spotting this!
Commit
63c1be8c316702c6e288962c173f7d47e50cdf4e65315273f55d36a57279dee0
Parent
e1796f2df2e55e1…
1 file changed
+11
-6
+11
-6
| --- src/graph.js | ||
| +++ src/graph.js | ||
| @@ -841,24 +841,29 @@ | ||
| 841 | 841 | ** o kFRST, kLAST: check if the previous/next page should be opened if focus is |
| 842 | 842 | ** already at the top/bottom. |
| 843 | 843 | */ |
| 844 | 844 | (function(){ |
| 845 | 845 | window.addEventListener('load',function(){ |
| 846 | +// "Primary" (1) and "secondary" (2) selections swapped compared to CSS classes: | |
| 847 | +// (1) .timelineSecondary → | |
| 848 | +// /vdiff?to=, /timeline?sel2= | |
| 849 | +// (2) .timelineSelected:not(.timelineSecondary) → | |
| 850 | +// /vdiff?from=, /timeline?c=, /timeline?sel1= | |
| 846 | 851 | function focusDefaultId(){ |
| 847 | - var tn = document.querySelector( | |
| 848 | - '.timelineSelected:not(.timelineSecondary) .tl-nodemark') | |
| 849 | - || document.querySelector('.timelineSelected .tl-nodemark') | |
| 852 | + var tn = document.querySelector('.timelineSecondary .tl-nodemark') | |
| 853 | + || document.querySelector( | |
| 854 | + '.timelineSelected:not(.timelineSecondary) .tl-nodemark') | |
| 850 | 855 | || document.querySelector('.timelineCurrent .tl-nodemark'); |
| 851 | 856 | return tn ? tn.id : 'm1'; |
| 852 | 857 | } |
| 853 | 858 | function focusSelectedId(){ |
| 854 | - var tn = document.querySelector( | |
| 855 | - '.timelineSelected:not(.timelineSecondary) .tl-nodemark'); | |
| 859 | + var tn = document.querySelector('.timelineSecondary .tl-nodemark'); | |
| 856 | 860 | return tn ? tn.id : null; |
| 857 | 861 | } |
| 858 | 862 | function focus2ndSelectedId(){ |
| 859 | - var tn = document.querySelector('.timelineSecondary .tl-nodemark'); | |
| 863 | + var tn = document.querySelector( | |
| 864 | + '.timelineSelected:not(.timelineSecondary) .tl-nodemark'); | |
| 860 | 865 | return tn ? tn.id : null; |
| 861 | 866 | } |
| 862 | 867 | function focusCurrentId(){ |
| 863 | 868 | var tn = document.querySelector('.timelineCurrent .tl-nodemark'); |
| 864 | 869 | return tn ? tn.id : null; |
| 865 | 870 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -841,24 +841,29 @@ | |
| 841 | ** o kFRST, kLAST: check if the previous/next page should be opened if focus is |
| 842 | ** already at the top/bottom. |
| 843 | */ |
| 844 | (function(){ |
| 845 | window.addEventListener('load',function(){ |
| 846 | function focusDefaultId(){ |
| 847 | var tn = document.querySelector( |
| 848 | '.timelineSelected:not(.timelineSecondary) .tl-nodemark') |
| 849 | || document.querySelector('.timelineSelected .tl-nodemark') |
| 850 | || document.querySelector('.timelineCurrent .tl-nodemark'); |
| 851 | return tn ? tn.id : 'm1'; |
| 852 | } |
| 853 | function focusSelectedId(){ |
| 854 | var tn = document.querySelector( |
| 855 | '.timelineSelected:not(.timelineSecondary) .tl-nodemark'); |
| 856 | return tn ? tn.id : null; |
| 857 | } |
| 858 | function focus2ndSelectedId(){ |
| 859 | var tn = document.querySelector('.timelineSecondary .tl-nodemark'); |
| 860 | return tn ? tn.id : null; |
| 861 | } |
| 862 | function focusCurrentId(){ |
| 863 | var tn = document.querySelector('.timelineCurrent .tl-nodemark'); |
| 864 | return tn ? tn.id : null; |
| 865 |
| --- src/graph.js | |
| +++ src/graph.js | |
| @@ -841,24 +841,29 @@ | |
| 841 | ** o kFRST, kLAST: check if the previous/next page should be opened if focus is |
| 842 | ** already at the top/bottom. |
| 843 | */ |
| 844 | (function(){ |
| 845 | window.addEventListener('load',function(){ |
| 846 | // "Primary" (1) and "secondary" (2) selections swapped compared to CSS classes: |
| 847 | // (1) .timelineSecondary → |
| 848 | // /vdiff?to=, /timeline?sel2= |
| 849 | // (2) .timelineSelected:not(.timelineSecondary) → |
| 850 | // /vdiff?from=, /timeline?c=, /timeline?sel1= |
| 851 | function focusDefaultId(){ |
| 852 | var tn = document.querySelector('.timelineSecondary .tl-nodemark') |
| 853 | || document.querySelector( |
| 854 | '.timelineSelected:not(.timelineSecondary) .tl-nodemark') |
| 855 | || document.querySelector('.timelineCurrent .tl-nodemark'); |
| 856 | return tn ? tn.id : 'm1'; |
| 857 | } |
| 858 | function focusSelectedId(){ |
| 859 | var tn = document.querySelector('.timelineSecondary .tl-nodemark'); |
| 860 | return tn ? tn.id : null; |
| 861 | } |
| 862 | function focus2ndSelectedId(){ |
| 863 | var tn = document.querySelector( |
| 864 | '.timelineSelected:not(.timelineSecondary) .tl-nodemark'); |
| 865 | return tn ? tn.id : null; |
| 866 | } |
| 867 | function focusCurrentId(){ |
| 868 | var tn = document.querySelector('.timelineCurrent .tl-nodemark'); |
| 869 | return tn ? tn.id : null; |
| 870 |