|
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