add more backported fixes
[alioth/musescore.git] / debian / patches / upstream / fix-staffidx.diff
1 Origin: upstream, commit:1d56d5564bf3079055dbc8fcbd23469045c292b4
2 Author: MarcSabatella <marc@outsideshore.com>
3 Description: fix #281253: staff spacer down ignored on bottom of page
4  Resolves: https://musescore.org/en/node/281253
5  .
6  A staff spacer on the bottom system of a page does not work correctly:
7  we are looking foir a spacer on the *first* staff rather than the *last*.
8  So a spacer on the last staff is ignored, and one on the first is used
9  when it shouldn't be.
10  .
11  The code to calculate the amount of spacer required below the last
12  system of a page relies on System::lastVisibleSysStaff(),
13  which is return the correct SysStaff, but we are then attempting
14  to access the idx member, which has never been set up and is always 0.
15  Fix is to initialize idx when setting up the list of staves.
16
17 --- a/libmscore/system.cpp
18 +++ b/libmscore/system.cpp
19 @@ -114,6 +114,7 @@ System::~System()
20  SysStaff* System::insertStaff(int idx)
21        {
22        SysStaff* staff = new SysStaff;
23 +      staff->idx = idx;
24        if (idx) {
25              // HACK: guess position
26              staff->rbb().setY(_staves[idx-1]->y() + 6 * spatium());