denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Denemo-devel] Horizontal Scrolling


From: Richard Shann
Subject: [Denemo-devel] Horizontal Scrolling
Date: Wed, 30 Nov 2011 13:14:43 +0000

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








reply via email to

[Prev in Thread] Current Thread [Next in Thread]