|
479 | 479 | }
|
480 | 480 |
|
481 | 481 | if (offset[0] != offset[1] || cm.length == 3 && offset[1] != offset[2])
|
482 |
| - alignLines(cm, offset, [0, 0, 0], aligners) |
| 482 | + alignLines(cm, offset, [0, 0, 0], aligners, dv.mv.options.padDirection) |
483 | 483 | for (var ln = 0; ln < linesToAlign.length; ln++)
|
484 |
| - alignLines(cm, offset, linesToAlign[ln], aligners); |
| 484 | + alignLines(cm, offset, linesToAlign[ln], aligners, dv.mv.options.padDirection); |
485 | 485 |
|
486 | 486 | for (var i = 0; i < cm.length; i++)
|
487 | 487 | cm[i].scrollTo(null, scroll[i]);
|
488 | 488 | }
|
489 | 489 |
|
490 |
| - function alignLines(cm, cmOffset, lines, aligners) { |
| 490 | + function alignLines(cm, cmOffset, lines, aligners, padDirection) { |
491 | 491 | var maxOffset = -1e8, offset = [];
|
492 | 492 | for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
|
493 | 493 | var off = cm[i].heightAtLine(lines[i], "local") - cmOffset[i];
|
|
496 | 496 | }
|
497 | 497 | for (var i = 0; i < cm.length; i++) if (lines[i] != null) {
|
498 | 498 | var diff = maxOffset - offset[i];
|
499 |
| - if (diff > 1 && i === 0) { |
500 |
| - aligners.push(padAbove(cm[i], lines[i], diff)); |
501 |
| - } else if (diff > 1) { |
502 |
| - aligners.push(padBelow(cm[i], lines[i] - 1, diff)); |
503 |
| - } |
| 499 | + if (diff > 1) aligners.push(padAlign(cm[i], lines[i] - 1, diff, padDirection)); |
504 | 500 | }
|
505 | 501 | }
|
506 | 502 |
|
| 503 | + function padAlign(cm, line, size, padDirection) { |
| 504 | + if (padDirection === 'below') return padBelow(cm, line, size) |
| 505 | + return padAbove(cm, line, size) |
| 506 | + } |
| 507 | + |
507 | 508 | function padAbove(cm, line, size) {
|
508 | 509 | var above = true;
|
509 | 510 | if (line > cm.lastLine()) {
|
|
0 commit comments