We have a long-standing problem with horizontal scrolling in Denemo. Broadly speaking, when you try to work on a measure that is not in the display area the display re-draws itself with the measure concerned in the center (?) of the display. This is bad because you lose track of the cursor, and you can also find yourself looking at the wrong measure, not noticing that the change has occurred (the latter particularly if the measures concerned are similar). Another example of the problem comes when deleting whole measures, sometimes nothing appears to have happened because the displayed measures happen to be the same (e.g. when deleting empty measures). Some suggestions have been made on this topic from the users' perspective. However, I don't think these were detailed enough (they would need to describe how the display behaves under the various specific circumstances such as adding a note at the end of a score when the measure is nearly off-display, navigating left/right from measures located at various positions in the display). And, to make matters worse, I don't know how these would map onto cairo code were we to have a blank sheet of paper.
One thing that occurred to me is that it is not difficult to get smooth scrolling with our current drawing routines: we always draw starting from the left side of the drawing area, but we could start further to the left. This would result in the clefs etc moving off display whenever a partial measure was being displayed at the left. We could allow the display to bleed off on the right hand side too, by drawing a little more than actually fits. There would be a small penalty for the extra drawing calculation, but that might not even be detectable because I think it is the actual rendering to screen that takes the time. So, to smoothly scroll horizontally you would draw as at present but gradually increase/decrease the start position. At some point a whole measure becomes invisible to the left and you have to re-instate the clefs etc at the start of line - that could be very complicated, it might pay to reserve an area for them at the left all the time, and start bleeding off the measure to the right of that reserved area (so in this case as you scrolled the notes would disappear behind the keysig,timesig, clef on the left which would remain fixed). (OK, I am thinking out loud here, it would clearly be better to do this). The question is, how could we make use of this to give a nicer feel to the display? In detail that is - what would it look like under all the various circumstances? There is still a different problem - a bug really - that re-calculation often occurs for no good reason and (even more bizarre) results in different placing of the notes etc. This is most irritating if not actually critical for use. Richard _______________________________________________ Denemo-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/denemo-devel
