From: amwaterhouse Date: Tue, 30 Aug 2005 11:35:55 +0000 (+0000) Subject: Keep mouse drag to 1 block when wrapped X-Git-Tag: Release_2_05b~83 X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=commitdiff_plain;h=b90206d60dbcb530a3eeeb00b4802ba0a6d8bad2 Keep mouse drag to 1 block when wrapped --- diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index a619cdf..d7f11bb 100755 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -152,6 +152,8 @@ public class SeqPanel ap.repaint(); } + int startWrapBlock=-1; + int wrappedBlock=-1; int findRes(MouseEvent evt) { int res = 0; @@ -165,10 +167,10 @@ public class SeqPanel int chunkHeight = (av.getAlignment().getHeight() + 2) * av.charHeight; int cwidth = seqCanvas.getWrappedCanvasWidth(this.getSize().width); - int block = y/chunkHeight; - block += av.getStartRes()/cwidth; + wrappedBlock = y/chunkHeight; + wrappedBlock += av.getStartRes()/cwidth; - res = block*cwidth + x / av.getCharWidth(); + res = wrappedBlock*cwidth + x / av.getCharWidth(); } else { @@ -567,6 +569,7 @@ public class SeqPanel int res = findRes(evt); int seq = findSeq(evt); oldSeq = seq; + startWrapBlock=wrappedBlock; SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(seq); @@ -705,6 +708,9 @@ public class SeqPanel int res = findRes(evt); int y = findSeq(evt); + if(wrappedBlock!=startWrapBlock) + return; + if(y>=av.alignment.getHeight()) y = av.alignment.getHeight()-1; diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 75f9004..62d95ea 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -203,6 +203,8 @@ public class SeqPanel extends JPanel }); } + int startWrapBlock=-1; + int wrappedBlock=-1; int findRes(MouseEvent evt) { int res = 0; @@ -216,10 +218,10 @@ public class SeqPanel extends JPanel int chunkHeight = (av.getAlignment().getHeight() + 2) * av.charHeight; int cwidth = seqCanvas.getWrappedCanvasWidth(this.getWidth()); - int block = y/chunkHeight; - block += av.getStartRes()/cwidth; + wrappedBlock = y/chunkHeight; + wrappedBlock += av.getStartRes()/cwidth; - res = block*cwidth + x / av.getCharWidth(); + res = wrappedBlock*cwidth + x / av.getCharWidth(); } else { @@ -688,6 +690,8 @@ public class SeqPanel extends JPanel int seq = findSeq(evt); oldSeq = seq; + startWrapBlock=wrappedBlock; + if(seq<0 || res<0) return; @@ -838,6 +842,9 @@ public class SeqPanel extends JPanel int res = findRes(evt); int y = findSeq(evt); + if(wrappedBlock!=startWrapBlock) + return; + if (stretchGroup == null) { return;