int original = seqCanvas.cursorX - dx;
int maxWidth = av.getAlignment().getWidth();
+ // TODO: once JAL-2759 is ready, change this loop to something more
+ // efficient
while (!hidden.isVisible(seqCanvas.cursorX)
- && seqCanvas.cursorX < maxWidth && seqCanvas.cursorX > 0)
+ && seqCanvas.cursorX < maxWidth && seqCanvas.cursorX > 0
+ && dx != 0)
{
seqCanvas.cursorX += dx;
}
{
if (av.getWrapAlignment())
{
- av.getRanges().scrollToWrappedVisible(seqCanvas.cursorX);
+ // scrollToWrappedVisible expects x-value to have hidden cols subtracted
+ int x = av.getAlignment().getHiddenColumns()
+ .findColumnPosition(seqCanvas.cursorX);
+ av.getRanges().scrollToWrappedVisible(x);
}
else
{
seqCanvas.cursorY);
}
}
- setStatusMessage(av.getAlignment().getSequenceAt(seqCanvas.cursorY),
+
+ if (av.getAlignment().getHiddenColumns().isVisible(seqCanvas.cursorX))
+ {
+ setStatusMessage(av.getAlignment().getSequenceAt(seqCanvas.cursorY),
seqCanvas.cursorX, seqCanvas.cursorY);
+ }
if (repaintNeeded)
{