ap.repaint();\r
}\r
\r
+ int startWrapBlock=-1;\r
+ int wrappedBlock=-1;\r
int findRes(MouseEvent evt)\r
{\r
int res = 0;\r
\r
int chunkHeight = (av.getAlignment().getHeight() + 2) * av.charHeight;\r
int cwidth = seqCanvas.getWrappedCanvasWidth(this.getSize().width);\r
- int block = y/chunkHeight;\r
- block += av.getStartRes()/cwidth;\r
+ wrappedBlock = y/chunkHeight;\r
+ wrappedBlock += av.getStartRes()/cwidth;\r
\r
- res = block*cwidth + x / av.getCharWidth();\r
+ res = wrappedBlock*cwidth + x / av.getCharWidth();\r
}\r
else\r
{\r
int res = findRes(evt);\r
int seq = findSeq(evt);\r
oldSeq = seq;\r
+ startWrapBlock=wrappedBlock;\r
\r
SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(seq);\r
\r
int res = findRes(evt);\r
int y = findSeq(evt);\r
\r
+ if(wrappedBlock!=startWrapBlock)\r
+ return;\r
+\r
if(y>=av.alignment.getHeight())\r
y = av.alignment.getHeight()-1;\r
\r
});\r
}\r
\r
+ int startWrapBlock=-1;\r
+ int wrappedBlock=-1;\r
int findRes(MouseEvent evt)\r
{\r
int res = 0;\r
\r
int chunkHeight = (av.getAlignment().getHeight() + 2) * av.charHeight;\r
int cwidth = seqCanvas.getWrappedCanvasWidth(this.getWidth());\r
- int block = y/chunkHeight;\r
- block += av.getStartRes()/cwidth;\r
+ wrappedBlock = y/chunkHeight;\r
+ wrappedBlock += av.getStartRes()/cwidth;\r
\r
- res = block*cwidth + x / av.getCharWidth();\r
+ res = wrappedBlock*cwidth + x / av.getCharWidth();\r
}\r
else\r
{\r
int seq = findSeq(evt);\r
oldSeq = seq;\r
\r
+ startWrapBlock=wrappedBlock;\r
+\r
if(seq<0 || res<0)\r
return;\r
\r
int res = findRes(evt);\r
int y = findSeq(evt);\r
\r
+ if(wrappedBlock!=startWrapBlock)\r
+ return;\r
+\r
if (stretchGroup == null)\r
{\r
return;\r