Fossil

Check-in [0c024627dc]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Enhance the H shortcut to consider the secondary selection on the /vdiff page as a waypoint.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | timeline-keyboard-navigation
Files: files | file ages | folders
SHA3-256: 0c024627dc03fc23fce442aa6089fcf8e87f8a18bea2f2f4bb31809b4995bf8d
User & Date: florian 2022-08-04 06:09:00.000
Context
2022-08-04
06:14
Comment and TODO updates. ... (check-in: ec8b53a9bc user: florian tags: timeline-keyboard-navigation)
06:09
Enhance the H shortcut to consider the secondary selection on the /vdiff page as a waypoint. ... (check-in: 0c024627dc user: florian tags: timeline-keyboard-navigation)
04:25
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. ... (check-in: 1d5e6e3cae user: florian tags: timeline-keyboard-navigation)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/graph.js.
847
848
849
850
851
852
853
854


855
856
857
858





859
860
861
862
863
864
865
866
**  o Improve scrolling the focused element into view for browsers without the
**    Element.scrollIntoViewIfNeeded() function, maybe with a Polyfill, or
**    something similar to the scrollToSelected() function in this source file.
*/
(function(){
  window.addEventListener('load',function(){
    function focusDefaultId(){
      var tn = document.querySelector('.timelineSelected .tl-nodemark') ||


                document.querySelector('.timelineCurrent .tl-nodemark');
      return tn ? tn.id : 'm1';
    }
    function focusSelectedId(){





      var tn = document.querySelector('.timelineSelected .tl-nodemark');
      return tn ? tn.id : null;
    }
    function focusCurrentId(){
      var tn = document.querySelector('.timelineCurrent .tl-nodemark');
      return tn ? tn.id : null;
    }
    function focusTickedId(){







|
>
>
|



>
>
>
>
>
|







847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
**  o Improve scrolling the focused element into view for browsers without the
**    Element.scrollIntoViewIfNeeded() function, maybe with a Polyfill, or
**    something similar to the scrollToSelected() function in this source file.
*/
(function(){
  window.addEventListener('load',function(){
    function focusDefaultId(){
      var tn = document.querySelector(
                '.timelineSelected:not(.timelineSecondary) .tl-nodemark')
                || document.querySelector('.timelineSelected .tl-nodemark')
                || document.querySelector('.timelineCurrent .tl-nodemark');
      return tn ? tn.id : 'm1';
    }
    function focusSelectedId(){
      var tn = document.querySelector(
                '.timelineSelected:not(.timelineSecondary) .tl-nodemark');
      return tn ? tn.id : null;
    }
    function focus2ndSelectedId(){
      var tn = document.querySelector('.timelineSecondary .tl-nodemark');
      return tn ? tn.id : null;
    }
    function focusCurrentId(){
      var tn = document.querySelector('.timelineCurrent .tl-nodemark');
      return tn ? tn.id : null;
    }
    function focusTickedId(){
997
998
999
1000
1001
1002
1003

1004
1005
1006

1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
        return;
      }
      document.cookie = 'fossil_timeline_kbnav=1;path=/';
      var id = focusCacheGet();
      if( id && dx==0 ){
        if( key==kCYCL ){
          var sel = focusSelectedId();

          var cur = focusCurrentId();
          var tik = focusTickedId();
          if( id==sel ) id = cur || tik || sel;

          else if( id==cur ) id = tik || sel || cur;
          else if( id==tik ) id = sel || cur || tik;
          else id = sel || cur || tik || id;
        }
        else if( key==kTICK ){
          var gn = document.getElementById('tln'+id.slice(1));
          if( gn ) gn.click();
        }
        else/* if( key==kTMLN || key==kVIEW )*/{
          var ri = timelineGetRowInfo(id);







>


|
>
|
|
|







1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
        return;
      }
      document.cookie = 'fossil_timeline_kbnav=1;path=/';
      var id = focusCacheGet();
      if( id && dx==0 ){
        if( key==kCYCL ){
          var sel = focusSelectedId();
          var sl2 = focus2ndSelectedId();
          var cur = focusCurrentId();
          var tik = focusTickedId();
          if( id==sel ) id = sl2 || cur || tik || sel;
          else if( id==sl2 ) id = cur || tik || sel || sl2;
          else if( id==cur ) id = tik || sel || sl2 || cur;
          else if( id==tik ) id = sel || sl2 || cur || tik;
          else id = sel || sl2 || cur || tik || id;
        }
        else if( key==kTICK ){
          var gn = document.getElementById('tln'+id.slice(1));
          if( gn ) gn.click();
        }
        else/* if( key==kTMLN || key==kVIEW )*/{
          var ri = timelineGetRowInfo(id);