X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FSeqPanel.java;h=6ca9499618fec362038f5999f4aaf01c822d99a5;hb=refs%2Fheads%2Freleases%2FRelease_2_10_0_Branch;hp=9ec1ce435fa85a775b7c8deaf486c3e79e40ddf8;hpb=92392d967a7cc28241ed079a8bee348fb92c4566;p=jalview.git diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index 9ec1ce4..6ca9499 100644 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -927,13 +927,6 @@ public class SeqPanel extends Panel implements MouseMotionListener, */ private boolean needOverviewUpdate; // TODO: refactor to avcontroller - /** - * set if av.getSelectionGroup() refers to a group that is defined on the - * alignment view, rather than a transient selection - */ - private boolean editingDefinedGroup = false; // TODO: refactor to avcontroller - // or viewModel - @Override public void mouseDragged(MouseEvent evt) { @@ -1436,12 +1429,10 @@ public class SeqPanel extends Panel implements MouseMotionListener, && res < stretchGroup.getEndRes()) { av.setSelectionGroup(stretchGroup); - editingDefinedGroup = true; } else { stretchGroup = null; - editingDefinedGroup = false; } } @@ -1461,7 +1452,6 @@ public class SeqPanel extends Panel implements MouseMotionListener, && allGroups[i].getEndRes() >= res) { stretchGroup = allGroups[i]; - editingDefinedGroup = true; break; } } @@ -1517,7 +1507,6 @@ public class SeqPanel extends Panel implements MouseMotionListener, sg.setEndRes(res); sg.addSequence(sequence, false); av.setSelectionGroup(sg); - editingDefinedGroup = false; stretchGroup = sg; if (av.getConservationSelected()) @@ -1543,7 +1532,8 @@ public class SeqPanel extends Panel implements MouseMotionListener, // always do this - annotation has own state // but defer colourscheme update until hidden sequences are passed in boolean vischange = stretchGroup.recalcConservation(true); - needOverviewUpdate |= vischange && editingDefinedGroup; + // here we rely on stretchGroup == av.getSelection() + needOverviewUpdate |= vischange && av.isSelectionDefinedGroup(); if (stretchGroup.cs != null) { stretchGroup.cs.alignmentChanged(stretchGroup, @@ -1562,8 +1552,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, } PaintRefresher.Refresh(ap, av.getSequenceSetId()); ap.paintAlignment(needOverviewUpdate); - needOverviewUpdate =false; - editingDefinedGroup = false; + needOverviewUpdate = false; changeEndRes = false; changeStartRes = false; stretchGroup = null; @@ -1618,7 +1607,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (res > (stretchGroup.getStartRes() - 1)) { stretchGroup.setEndRes(res); - needOverviewUpdate |= editingDefinedGroup; + needOverviewUpdate |= av.isSelectionDefinedGroup(); } } else if (changeStartRes) @@ -1626,7 +1615,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (res < (stretchGroup.getEndRes() + 1)) { stretchGroup.setStartRes(res); - needOverviewUpdate |= editingDefinedGroup; + needOverviewUpdate |= av.isSelectionDefinedGroup(); } } @@ -1660,7 +1649,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (stretchGroup.getSequences(null).contains(nextSeq)) { stretchGroup.deleteSequence(seq, false); - needOverviewUpdate |= editingDefinedGroup; + needOverviewUpdate |= av.isSelectionDefinedGroup(); } else { @@ -1670,7 +1659,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, } stretchGroup.addSequence(nextSeq, false); - needOverviewUpdate |= editingDefinedGroup; + needOverviewUpdate |= av.isSelectionDefinedGroup(); } } @@ -1839,9 +1828,12 @@ public class SeqPanel extends Panel implements MouseMotionListener, // do we want to thread this ? (contention with seqsel and colsel locks, I // suspect) - // rules are: colsel is copied if there is a real intersection between - // sequence selection - boolean repaint = false, copycolsel = true; + /* + * only copy colsel if there is a real intersection between + * sequence selection and this panel's alignment + */ + boolean repaint = false; + boolean copycolsel = false; if (av.getSelectionGroup() == null || !av.isSelectionGroupChanged(true)) { SequenceGroup sgroup = null; @@ -1858,11 +1850,9 @@ public class SeqPanel extends Panel implements MouseMotionListener, } sgroup = seqsel.intersect(av.getAlignment(), (av.hasHiddenRows()) ? av.getHiddenRepSequences() : null); - if ((sgroup == null || sgroup.getSize() == 0) - && (colsel == null || colsel.isEmpty())) + if ((sgroup != null && sgroup.getSize() > 0)) { - // don't copy columns if the region didn't intersect. - copycolsel = false; + copycolsel = true; } } if (sgroup != null && sgroup.getSize() > 0)