Fossil SCM
Check the graph for resize events every second and rerender the graph if a resize has occurred. This fixes display problems on Safari and also keeps the graph consistent with resized browser windows.
Commit
f51bd59613cf9a2b48ba0abc926b7cacbb461d0b
Parent
399d1ca0006bf2f…
1 file changed
+16
-1
+16
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -495,10 +495,15 @@ | ||
| 495 | 495 | @ drawThinArrow(y0,mx,p.x-5); |
| 496 | 496 | @ } |
| 497 | 497 | @ } |
| 498 | 498 | @ } |
| 499 | 499 | @ function renderGraph(){ |
| 500 | + @ var canvasDiv = document.getElementById("canvas"); | |
| 501 | + @ for(var i=canvasDiv.childNodes.length-1; i>=0; i--){ | |
| 502 | + @ var c = canvasDiv.childNodes[i]; | |
| 503 | + @ delete canvasDiv.removeChild(c); | |
| 504 | + @ } | |
| 500 | 505 | @ var canvasY = absoluteY("canvas"); |
| 501 | 506 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 502 | 507 | @ for(var i in rowinfo){ |
| 503 | 508 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 504 | 509 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| @@ -506,11 +511,21 @@ | ||
| 506 | 511 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 507 | 512 | @ for(var i in rowinfo){ |
| 508 | 513 | @ drawNode(rowinfo[i], left, btm); |
| 509 | 514 | @ } |
| 510 | 515 | @ } |
| 511 | - @ renderGraph(); | |
| 516 | + @ var lastId = rowinfo[rowinfo.length-1].id; | |
| 517 | + @ var lastY = 0; | |
| 518 | + @ function checkHeight(){ | |
| 519 | + @ var h = absoluteY(lastId); | |
| 520 | + @ if( h!=lastY ){ | |
| 521 | + @ renderGraph(); | |
| 522 | + @ lastY = h; | |
| 523 | + @ } | |
| 524 | + @ setTimeout("checkHeight();", 1000); | |
| 525 | + @ } | |
| 526 | + @ checkHeight(); | |
| 512 | 527 | @ </script> |
| 513 | 528 | } |
| 514 | 529 | } |
| 515 | 530 | |
| 516 | 531 | /* |
| 517 | 532 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -495,10 +495,15 @@ | |
| 495 | @ drawThinArrow(y0,mx,p.x-5); |
| 496 | @ } |
| 497 | @ } |
| 498 | @ } |
| 499 | @ function renderGraph(){ |
| 500 | @ var canvasY = absoluteY("canvas"); |
| 501 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 502 | @ for(var i in rowinfo){ |
| 503 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 504 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| @@ -506,11 +511,21 @@ | |
| 506 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 507 | @ for(var i in rowinfo){ |
| 508 | @ drawNode(rowinfo[i], left, btm); |
| 509 | @ } |
| 510 | @ } |
| 511 | @ renderGraph(); |
| 512 | @ </script> |
| 513 | } |
| 514 | } |
| 515 | |
| 516 | /* |
| 517 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -495,10 +495,15 @@ | |
| 495 | @ drawThinArrow(y0,mx,p.x-5); |
| 496 | @ } |
| 497 | @ } |
| 498 | @ } |
| 499 | @ function renderGraph(){ |
| 500 | @ var canvasDiv = document.getElementById("canvas"); |
| 501 | @ for(var i=canvasDiv.childNodes.length-1; i>=0; i--){ |
| 502 | @ var c = canvasDiv.childNodes[i]; |
| 503 | @ delete canvasDiv.removeChild(c); |
| 504 | @ } |
| 505 | @ var canvasY = absoluteY("canvas"); |
| 506 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 507 | @ for(var i in rowinfo){ |
| 508 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 509 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| @@ -506,11 +511,21 @@ | |
| 511 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 512 | @ for(var i in rowinfo){ |
| 513 | @ drawNode(rowinfo[i], left, btm); |
| 514 | @ } |
| 515 | @ } |
| 516 | @ var lastId = rowinfo[rowinfo.length-1].id; |
| 517 | @ var lastY = 0; |
| 518 | @ function checkHeight(){ |
| 519 | @ var h = absoluteY(lastId); |
| 520 | @ if( h!=lastY ){ |
| 521 | @ renderGraph(); |
| 522 | @ lastY = h; |
| 523 | @ } |
| 524 | @ setTimeout("checkHeight();", 1000); |
| 525 | @ } |
| 526 | @ checkHeight(); |
| 527 | @ </script> |
| 528 | } |
| 529 | } |
| 530 | |
| 531 | /* |
| 532 |