From 420e0c1ff27bcfbb24f2c0b295c3d12ca2f7f8e6 Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Sat, 20 Dec 2025 19:10:52 +0100 Subject: [PATCH] fix: always apply systemLabelPaddingLeft --- .../src/rendering/staves/StaffSystem.ts | 2 +- .../no-label-padding-left-no-padding.png | Bin 0 -> 7557 bytes .../no-label-padding-left-with-label.png | Bin 0 -> 7540 bytes .../no-label-padding-left-without-label.png | Bin 0 -> 7134 bytes .../visualTests/issues/BrokenRenders.test.ts | 62 +++++++++++++++--- 5 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 packages/alphatab/test-data/visual-tests/issues/no-label-padding-left-no-padding.png create mode 100644 packages/alphatab/test-data/visual-tests/issues/no-label-padding-left-with-label.png create mode 100644 packages/alphatab/test-data/visual-tests/issues/no-label-padding-left-without-label.png diff --git a/packages/alphatab/src/rendering/staves/StaffSystem.ts b/packages/alphatab/src/rendering/staves/StaffSystem.ts index 47ed0e3a8..3f7c3042c 100644 --- a/packages/alphatab/src/rendering/staves/StaffSystem.ts +++ b/packages/alphatab/src/rendering/staves/StaffSystem.ts @@ -478,8 +478,8 @@ export class StaffSystem { } } + this.accoladeWidth += settings.display.systemLabelPaddingLeft; if (hasAnyTrackName) { - this.accoladeWidth += settings.display.systemLabelPaddingLeft; this.accoladeWidth += settings.display.systemLabelPaddingRight; } } diff --git a/packages/alphatab/test-data/visual-tests/issues/no-label-padding-left-no-padding.png b/packages/alphatab/test-data/visual-tests/issues/no-label-padding-left-no-padding.png new file mode 100644 index 0000000000000000000000000000000000000000..470a0a7ab9e7620e6a4bb4c8761a159fa37433d5 GIT binary patch literal 7557 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 literal 0 HcmV?d00001 diff --git a/packages/alphatab/test/visualTests/issues/BrokenRenders.test.ts b/packages/alphatab/test/visualTests/issues/BrokenRenders.test.ts index 1facd1cfc..e9ecf815a 100644 --- a/packages/alphatab/test/visualTests/issues/BrokenRenders.test.ts +++ b/packages/alphatab/test/visualTests/issues/BrokenRenders.test.ts @@ -13,14 +13,14 @@ describe('BrokenRendersTests', () => { }); it('bottom-effect-band', async () => { - await VisualTestHelper.runVisualTestTex(` + await VisualTestHelper.runVisualTestTex( + ` \\lyrics "Do Re Mi Fa So" C4 {tr 16} C4 C4 C4 | C4 c4`, 'test-data/visual-tests/issues/bottom-effect-band.png' ); }); - it('whammy-resize-wrap', async () => { const score = ScoreLoader.loadAlphaTex(` \\staff {tabs} @@ -33,13 +33,17 @@ describe('BrokenRendersTests', () => { 5.3 5.3`); await VisualTestHelper.runVisualTestFull( - new VisualTestOptions(score, [ - new VisualTestRun(600, 'test-data/visual-tests/issues/whammy-resize-wrap-600.png'), - new VisualTestRun(400, 'test-data/visual-tests/issues/whammy-resize-wrap-400.png'), - // 431 - new VisualTestRun(380, 'test-data/visual-tests/issues/whammy-resize-wrap-380.png'), - new VisualTestRun(500, 'test-data/visual-tests/issues/whammy-resize-wrap-500.png') - ], new Settings()) + new VisualTestOptions( + score, + [ + new VisualTestRun(600, 'test-data/visual-tests/issues/whammy-resize-wrap-600.png'), + new VisualTestRun(400, 'test-data/visual-tests/issues/whammy-resize-wrap-400.png'), + // 431 + new VisualTestRun(380, 'test-data/visual-tests/issues/whammy-resize-wrap-380.png'), + new VisualTestRun(500, 'test-data/visual-tests/issues/whammy-resize-wrap-500.png') + ], + new Settings() + ) ); }); @@ -84,4 +88,44 @@ describe('BrokenRendersTests', () => { } } }); + + describe('no-label-padding-left', () => { + it('no-padding', async () => { + await VisualTestHelper.runVisualTestTex( + ` + \\track "T1" + C4 * 4 + `, + 'test-data/visual-tests/issues/no-label-padding-left-no-padding.png' + ); + }); + + it('with-label', async () => { + await VisualTestHelper.runVisualTestTex( + ` + \\track "T1" + C4 * 4 + `, + 'test-data/visual-tests/issues/no-label-padding-left-with-label.png', + undefined, + o => { + o.settings.display.systemLabelPaddingLeft = 100; + } + ); + }); + + it('without-label', async () => { + await VisualTestHelper.runVisualTestTex( + ` + \\track + C4 * 4 + `, + 'test-data/visual-tests/issues/no-label-padding-left-without-label.png', + undefined, + o => { + o.settings.display.systemLabelPaddingLeft = 100; + } + ); + }); + }); });