This pull request fixes a case when a middle spanner segment is shown on a wrong page. The issue can be illustrated, for example, with this score: slur.musicxml.txt
To reproduce the issue two conditions are necessary:
A slur spans for several systems (because page width is small or a slur is particularly long)
A system somewhere in the middle of the slur range is moved to another page.
If these conditions are met a slur segment which belongs to the first system on the second page is instead displayed on the first page:
Page 1
Page 2
The reason why this happens is that the shape for this slur segment is bound to a wrong system box because an incorrect column number for this shape is used. Therefore when its system gets moved to the next page a coordinate shift applied to this system does not get propagated to this slur segment's shape. This PR fixes it by ensuring that the column number the RelObj shape is bound to belongs to the column range of the current system. As a result, all slur segments in the example shown above get rendered on correct pages.
This pull request fixes a case when a middle spanner segment is shown on a wrong page. The issue can be illustrated, for example, with this score: slur.musicxml.txt
To reproduce the issue two conditions are necessary:
If these conditions are met a slur segment which belongs to the first system on the second page is instead displayed on the first page:
The reason why this happens is that the shape for this slur segment is bound to a wrong system box because an incorrect column number for this shape is used. Therefore when its system gets moved to the next page a coordinate shift applied to this system does not get propagated to this slur segment's shape. This PR fixes it by ensuring that the column number the
RelObj
shape is bound to belongs to the column range of the current system. As a result, all slur segments in the example shown above get rendered on correct pages.