trashing vertical alignment. Uncertain why, but it is working OK in
Java, where there was only a transient, occasional vertical offset
issue.
// Make sure we're not trying to draw a panel
// larger than the visible window
int scrollX = 0;
// Make sure we're not trying to draw a panel
// larger than the visible window
int scrollX = 0;
switch (eventName)
{
case SequenceGroup.SEQ_GROUP_CHANGED:
switch (eventName)
{
case SequenceGroup.SEQ_GROUP_CHANGED:
case ViewportRanges.STARTRESANDSEQ:
scrollX = ((int[]) evt.getNewValue())[0]
- ((int[]) evt.getOldValue())[0];
case ViewportRanges.STARTRESANDSEQ:
scrollX = ((int[]) evt.getNewValue())[0]
- ((int[]) evt.getOldValue())[0];
+ scrollY = ((int[]) evt.getNewValue())[1]
+ - ((int[]) evt.getOldValue())[1];
+
+ // System.out.println("SC dx dy " + scrollX + " " + scrollY);
+
+ if (scrollX != 0 && scrollY != 0)
+ {
+ // all sorts of problems in JavaScript if this is commented out.
+ repaint();
+ return;
+
+ }
ViewportRanges vpRanges = av.getRanges();
int range = vpRanges.getEndRes() - vpRanges.getStartRes() + 1;
scrollX = Math.max(Math.min(scrollX, range), -range);
ViewportRanges vpRanges = av.getRanges();
int range = vpRanges.getEndRes() - vpRanges.getStartRes() + 1;
scrollX = Math.max(Math.min(scrollX, range), -range);
+ fastPaint(scrollX, scrollY);