With the vertical scrolling display mode, when the top of a page passes the half-way point on the screen, that is considered the active page (this is similar to how Adobe handles it in Adobe Acrobat). So if you have a song where the last page takes up about half the screen, when that is scrolled up to the top of the screen, the next song is probably passing that half-way point and is being activated as the current song. If the newly activated song has a different display mode, then MobileSheetsPro has to switch display modes to reflect that. Obviously with this particular example, you would like MobileSheetsPro not to change songs until the second song's first page reaches the top of the screen, but if the logic was changed to work this way, it would cause all sorts of problems with other scenarios. For example, if you were viewing page 2 of a song, and you barely scrolled the first page into view, you wouldn't expect MobileSheetsPro to change the current page number to 1 just because the top of page 2 was now barely below the top of the screen (at least I wouldn't expect that).
So I don't really have a good answer for how to handle this scenario right now. The best solution would be for you to create the pages all with identical sizes. If you had white space after the end of the second page, then the song wouldn't change until that white space hit the top of the screen, which would probably give you plenty of time to play the content on the first half of the page. One thing I'd love to support in the future is an option to normalize pages so that every page in a song or setlist would be sized to match the maximum width and height of all pages. So if you had some partial pages, this would ensure the zoom level and sizing was consistent through all pages, as I would just add white padding to the edges of pages as needed.
One thing I can investigate is having a flag where the code responsible for laying out pages in a vertical fashion can see if automatic scrolling is active, and when it is, only change the active page when the top of a page crosses the top of the screen. I don't know what functionality that could mess up though, and things could get weird if users manually scroll the pages in the middle of automatic scrolling (which I know some users do to quickly speed up scrolling). For example, as I discussed earlier, if you manually scrolled down a page after it had crossed the top of the screen (revealing the bottom of the previous page), MobileSheets would make the previous page the active page which may or may not be a big deal.
If you have ideas or suggestions, I'll be happy to hear them.
Mike
So I don't really have a good answer for how to handle this scenario right now. The best solution would be for you to create the pages all with identical sizes. If you had white space after the end of the second page, then the song wouldn't change until that white space hit the top of the screen, which would probably give you plenty of time to play the content on the first half of the page. One thing I'd love to support in the future is an option to normalize pages so that every page in a song or setlist would be sized to match the maximum width and height of all pages. So if you had some partial pages, this would ensure the zoom level and sizing was consistent through all pages, as I would just add white padding to the edges of pages as needed.
One thing I can investigate is having a flag where the code responsible for laying out pages in a vertical fashion can see if automatic scrolling is active, and when it is, only change the active page when the top of a page crosses the top of the screen. I don't know what functionality that could mess up though, and things could get weird if users manually scroll the pages in the middle of automatic scrolling (which I know some users do to quickly speed up scrolling). For example, as I discussed earlier, if you manually scrolled down a page after it had crossed the top of the screen (revealing the bottom of the previous page), MobileSheets would make the previous page the active page which may or may not be a big deal.
If you have ideas or suggestions, I'll be happy to hear them.
Mike