Fossil SCM

Draw an X instead of a horizontal line. Uses SVG as attempts with characters differed wildly among browsers.

preben 2023-09-27 11:24 indicate-closed-branches-in-timeline
Commit 63785bd9111246a26b7be63487f788233e6a1c3b0b686f76454cca86f7a13ebb
--- skins/ardoise/css.txt
+++ skins/ardoise/css.txt
@@ -1033,19 +1033,17 @@
10331033
left: 3px;
10341034
width: 4px;
10351035
height: 4px;
10361036
background: #bbb
10371037
}
1038
-.tl-node.closed-leaf:after {
1039
- content: '';
1038
+.tl-node.closed-leaf svg {
10401039
position: absolute;
1041
- top: 4px;
1040
+ top: 0px;
10421041
left: 0px;
10431042
width: 10px;
1044
- height: 2px;
1045
- background: #bbb
1046
- border-radius: 0%;
1043
+ height: 10px;
1044
+ color: #bbb;
10471045
}
10481046
.tl-node.sel:after {
10491047
content: '';
10501048
position: absolute;
10511049
top: 1px;
10521050
--- skins/ardoise/css.txt
+++ skins/ardoise/css.txt
@@ -1033,19 +1033,17 @@
1033 left: 3px;
1034 width: 4px;
1035 height: 4px;
1036 background: #bbb
1037 }
1038 .tl-node.closed-leaf:after {
1039 content: '';
1040 position: absolute;
1041 top: 4px;
1042 left: 0px;
1043 width: 10px;
1044 height: 2px;
1045 background: #bbb
1046 border-radius: 0%;
1047 }
1048 .tl-node.sel:after {
1049 content: '';
1050 position: absolute;
1051 top: 1px;
1052
--- skins/ardoise/css.txt
+++ skins/ardoise/css.txt
@@ -1033,19 +1033,17 @@
1033 left: 3px;
1034 width: 4px;
1035 height: 4px;
1036 background: #bbb
1037 }
1038 .tl-node.closed-leaf svg {
 
1039 position: absolute;
1040 top: 0px;
1041 left: 0px;
1042 width: 10px;
1043 height: 10px;
1044 color: #bbb;
 
1045 }
1046 .tl-node.sel:after {
1047 content: '';
1048 position: absolute;
1049 top: 1px;
1050
--- skins/darkmode/css.txt
+++ skins/darkmode/css.txt
@@ -388,19 +388,17 @@
388388
left: 3px;
389389
width: 4px;
390390
height: 4px;
391391
background: #bbb
392392
}
393
-.tl-node.closed-leaf:after {
394
- content: '';
393
+.tl-node.closed-leaf svg {
395394
position: absolute;
396
- top: 4px;
395
+ top: 0px;
397396
left: 0px;
398397
width: 10px;
399
- height: 2px;
400
- background: #bbb
401
- border-radius: 0%;
398
+ height: 10px;
399
+ color: #bbb;
402400
}
403401
.tl-node.sel:after {
404402
content: '';
405403
position: absolute;
406404
top: 1px;
407405
--- skins/darkmode/css.txt
+++ skins/darkmode/css.txt
@@ -388,19 +388,17 @@
388 left: 3px;
389 width: 4px;
390 height: 4px;
391 background: #bbb
392 }
393 .tl-node.closed-leaf:after {
394 content: '';
395 position: absolute;
396 top: 4px;
397 left: 0px;
398 width: 10px;
399 height: 2px;
400 background: #bbb
401 border-radius: 0%;
402 }
403 .tl-node.sel:after {
404 content: '';
405 position: absolute;
406 top: 1px;
407
--- skins/darkmode/css.txt
+++ skins/darkmode/css.txt
@@ -388,19 +388,17 @@
388 left: 3px;
389 width: 4px;
390 height: 4px;
391 background: #bbb
392 }
393 .tl-node.closed-leaf svg {
 
394 position: absolute;
395 top: 0px;
396 left: 0px;
397 width: 10px;
398 height: 10px;
399 color: #bbb;
 
400 }
401 .tl-node.sel:after {
402 content: '';
403 position: absolute;
404 top: 1px;
405
--- skins/eagle/css.txt
+++ skins/eagle/css.txt
@@ -211,19 +211,17 @@
211211
height: 4px;
212212
background: #fff;
213213
}
214214
215215
/* closed leaf commit marker */
216
-.tl-node.closed-leaf:after {
217
- content: '';
216
+.tl-node.closed-leaf svg {
218217
position: absolute;
219
- top: 4px;
218
+ top: 0px;
220219
left: 0px;
221220
width: 10px;
222
- height: 2px;
223
- background: #fff;
224
- border-radius: 0%;
221
+ height: 10px;
222
+ color: #fff;
225223
}
226224
227225
/* up arrow */
228226
.tl-arrow.u {
229227
margin-top: -1px;
230228
--- skins/eagle/css.txt
+++ skins/eagle/css.txt
@@ -211,19 +211,17 @@
211 height: 4px;
212 background: #fff;
213 }
214
215 /* closed leaf commit marker */
216 .tl-node.closed-leaf:after {
217 content: '';
218 position: absolute;
219 top: 4px;
220 left: 0px;
221 width: 10px;
222 height: 2px;
223 background: #fff;
224 border-radius: 0%;
225 }
226
227 /* up arrow */
228 .tl-arrow.u {
229 margin-top: -1px;
230
--- skins/eagle/css.txt
+++ skins/eagle/css.txt
@@ -211,19 +211,17 @@
211 height: 4px;
212 background: #fff;
213 }
214
215 /* closed leaf commit marker */
216 .tl-node.closed-leaf svg {
 
217 position: absolute;
218 top: 0px;
219 left: 0px;
220 width: 10px;
221 height: 10px;
222 color: #fff;
 
223 }
224
225 /* up arrow */
226 .tl-arrow.u {
227 margin-top: -1px;
228
+4 -6
--- src/default.css
+++ src/default.css
@@ -118,19 +118,17 @@
118118
left: 3px;
119119
width: 4px;
120120
height: 4px;
121121
background: #000;
122122
}
123
-.tl-node.closed-leaf:after {
124
- content: '';
123
+.tl-node.closed-leaf svg {
125124
position: absolute;
126
- top: 4px;
125
+ top: 0px;
127126
left: 0px;
128127
width: 10px;
129
- height: 2px;
130
- background: #000;
131
- border-radius: 0%;
128
+ height: 10px;
129
+ color: #000;
132130
}
133131
.tl-node.sel:after {
134132
content: '';
135133
position: absolute;
136134
top: 2px;
137135
--- src/default.css
+++ src/default.css
@@ -118,19 +118,17 @@
118 left: 3px;
119 width: 4px;
120 height: 4px;
121 background: #000;
122 }
123 .tl-node.closed-leaf:after {
124 content: '';
125 position: absolute;
126 top: 4px;
127 left: 0px;
128 width: 10px;
129 height: 2px;
130 background: #000;
131 border-radius: 0%;
132 }
133 .tl-node.sel:after {
134 content: '';
135 position: absolute;
136 top: 2px;
137
--- src/default.css
+++ src/default.css
@@ -118,19 +118,17 @@
118 left: 3px;
119 width: 4px;
120 height: 4px;
121 background: #000;
122 }
123 .tl-node.closed-leaf svg {
 
124 position: absolute;
125 top: 0px;
126 left: 0px;
127 width: 10px;
128 height: 10px;
129 color: #000;
 
130 }
131 .tl-node.sel:after {
132 content: '';
133 position: absolute;
134 top: 2px;
135
+13 -1
--- src/graph.js
+++ src/graph.js
@@ -389,18 +389,30 @@
389389
if( p.r<0 ) return;
390390
if( p.u>0 ) drawUpArrow(p,tx.rowinfo[p.u-tx.iTopRow],p.fg,p.id);
391391
if( p.sb>0 ) drawDotted(p,tx.rowinfo[p.sb-tx.iTopRow],p.fg,p.id);
392392
var cls = node.cls;
393393
if( p.hasOwnProperty('mi') && p.mi.length ) cls += " merge";
394
- if( p.f&1 ) cls += " leaf";
395394
if( p.f&2 ) cls += " closed-leaf";
395
+ else if( p.f&1 ) cls += " leaf";
396396
var n = drawBox(cls,p.bg,p.x,p.y);
397397
n.id = "tln"+p.id;
398398
n.onclick = clickOnNode;
399399
n.ondblclick = dblclickOnNode;
400400
n.onmousemove = mouseOverNode;
401401
n.style.zIndex = 10;
402
+ if( p.f&2 ){
403
+ var pt1 = 0;
404
+ var pt2 = 100;
405
+ if( tx.circleNodes ){
406
+ pt1 = 14;
407
+ pt2 = 86;
408
+ }
409
+ n.innerHTML = "<svg width='100%' height='100%'viewbox='0 0 100 100'>"
410
+ + `<path d='M ${pt1},${pt1} L ${pt2},${pt2} M ${pt1},${pt2} L ${pt2},${pt1}'`
411
+ + " stroke='currentcolor' stroke-width='13'/>"
412
+ + "</svg>";
413
+ }
402414
if( !tx.omitDescenders ){
403415
if( p.u==0 ){
404416
if( p.hasOwnProperty('mo') && p.r==p.mo ){
405417
var ix = p.hasOwnProperty('cu') ? p.cu : p.mu;
406418
var top = tx.rowinfo[ix-tx.iTopRow]
407419
--- src/graph.js
+++ src/graph.js
@@ -389,18 +389,30 @@
389 if( p.r<0 ) return;
390 if( p.u>0 ) drawUpArrow(p,tx.rowinfo[p.u-tx.iTopRow],p.fg,p.id);
391 if( p.sb>0 ) drawDotted(p,tx.rowinfo[p.sb-tx.iTopRow],p.fg,p.id);
392 var cls = node.cls;
393 if( p.hasOwnProperty('mi') && p.mi.length ) cls += " merge";
394 if( p.f&1 ) cls += " leaf";
395 if( p.f&2 ) cls += " closed-leaf";
 
396 var n = drawBox(cls,p.bg,p.x,p.y);
397 n.id = "tln"+p.id;
398 n.onclick = clickOnNode;
399 n.ondblclick = dblclickOnNode;
400 n.onmousemove = mouseOverNode;
401 n.style.zIndex = 10;
 
 
 
 
 
 
 
 
 
 
 
 
402 if( !tx.omitDescenders ){
403 if( p.u==0 ){
404 if( p.hasOwnProperty('mo') && p.r==p.mo ){
405 var ix = p.hasOwnProperty('cu') ? p.cu : p.mu;
406 var top = tx.rowinfo[ix-tx.iTopRow]
407
--- src/graph.js
+++ src/graph.js
@@ -389,18 +389,30 @@
389 if( p.r<0 ) return;
390 if( p.u>0 ) drawUpArrow(p,tx.rowinfo[p.u-tx.iTopRow],p.fg,p.id);
391 if( p.sb>0 ) drawDotted(p,tx.rowinfo[p.sb-tx.iTopRow],p.fg,p.id);
392 var cls = node.cls;
393 if( p.hasOwnProperty('mi') && p.mi.length ) cls += " merge";
 
394 if( p.f&2 ) cls += " closed-leaf";
395 else if( p.f&1 ) cls += " leaf";
396 var n = drawBox(cls,p.bg,p.x,p.y);
397 n.id = "tln"+p.id;
398 n.onclick = clickOnNode;
399 n.ondblclick = dblclickOnNode;
400 n.onmousemove = mouseOverNode;
401 n.style.zIndex = 10;
402 if( p.f&2 ){
403 var pt1 = 0;
404 var pt2 = 100;
405 if( tx.circleNodes ){
406 pt1 = 14;
407 pt2 = 86;
408 }
409 n.innerHTML = "<svg width='100%' height='100%'viewbox='0 0 100 100'>"
410 + `<path d='M ${pt1},${pt1} L ${pt2},${pt2} M ${pt1},${pt2} L ${pt2},${pt1}'`
411 + " stroke='currentcolor' stroke-width='13'/>"
412 + "</svg>";
413 }
414 if( !tx.omitDescenders ){
415 if( p.u==0 ){
416 if( p.hasOwnProperty('mo') && p.r==p.mo ){
417 var ix = p.hasOwnProperty('cu') ? p.cu : p.mu;
418 var top = tx.rowinfo[ix-tx.iTopRow]
419

Keyboard Shortcuts

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