X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2Fseqfeatures%2FFeatureRenderer.java;fp=src%2Fjalview%2Frenderer%2Fseqfeatures%2FFeatureRenderer.java;h=3f44bcc4c0fe94427738889dd5994d6c3ad3954f;hb=e8d02fb7225305566995d9f4fbf9e5e910179bb7;hp=541288eaf1a2297fb61d07421a94e827159e1181;hpb=d253d66e8bf5bb3567194bc709c068fc2aed278d;p=jalview.git diff --git a/src/jalview/renderer/seqfeatures/FeatureRenderer.java b/src/jalview/renderer/seqfeatures/FeatureRenderer.java index 541288e..3f44bcc 100644 --- a/src/jalview/renderer/seqfeatures/FeatureRenderer.java +++ b/src/jalview/renderer/seqfeatures/FeatureRenderer.java @@ -309,10 +309,26 @@ public class FeatureRenderer extends FeatureRendererModel for (SequenceFeature sf : overlaps) { Color featureColour = fc.getColor(sf); - int visibleStart = Math.max(sf.getBegin(), - visiblePositions.getBegin()); + + /* + * if feature starts/ends outside the visible range, + * restrict to visible positions (or if a contact feature, + * to a single position) + */ + int visibleStart = sf.getBegin(); + if (visibleStart < visiblePositions.getBegin()) + { + visibleStart = sf.isContactFeature() ? sf.getEnd() + : visiblePositions.getBegin(); + } + int visibleEnd = sf.getEnd(); + if (visibleEnd > visiblePositions.getEnd()) + { + visibleEnd = sf.isContactFeature() ? sf.getBegin() + : visiblePositions.getEnd(); + } + int featureStartCol = seq.findIndex(visibleStart); - int visibleEnd = Math.min(sf.getEnd(), visiblePositions.getEnd()); int featureEndCol = sf.begin == sf.end ? featureStartCol : seq .findIndex(visibleEnd);