import jalview.datamodel.ColumnSelection;
import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
import jalview.renderer.ScaleRenderer;
import jalview.renderer.ScaleRenderer.ScaleMark;
import jalview.util.MessageManager;
protected void rightMouseButtonPressed(MouseEvent evt, final int res)
{
JPopupMenu pop = new JPopupMenu();
- if (reveal != null)
+
+ /*
+ * grab the hidden range in case mouseMoved nulls it
+ */
+ final int[] hiddenRange = reveal;
+ if (hiddenRange != null)
{
JMenuItem item = new JMenuItem(
MessageManager.getString("label.reveal"));
@Override
public void actionPerformed(ActionEvent e)
{
- av.showColumn(reveal[0]);
+ av.showColumn(hiddenRange[0]);
reveal = null;
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
{
av.showAllHiddenColumns();
reveal = null;
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
av.setSelectionGroup(null);
}
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
}
av.getColumnSelection().addElement(res);
- SequenceGroup sg = new SequenceGroup();
- // try to be as quick as possible
- SequenceI[] iVec = av.getAlignment().getSequencesArray();
- for (int i = 0; i < iVec.length; i++)
- {
- sg.addSequence(iVec[i], false);
- iVec[i] = null;
- }
- iVec = null;
+ SequenceGroup sg = new SequenceGroup(av.getAlignment().getSequences());
sg.setStartRes(res);
sg.setEndRes(res);
{
mouseDragging = false;
- int res = (evt.getX() / av.getCharWidth())
+ int xCords = Math.max(0, evt.getX()); // prevent negative X coordinates
+
+ int res = (xCords / av.getCharWidth())
+ av.getRanges().getStartRes();
if (av.hasHiddenColumns())