X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=46ea202b18ab011c0a9821d482034045dd0442b1;hb=e2227e5cbd0772e74c24f9e5420a8427fae5ddac;hp=f476d419dc11cb34f3b6a467c44ac3973e0d0e19;hpb=e95e6dde84154a36e777850a88b83df3992defbd;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index f476d41..46ea202 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -582,6 +582,13 @@ public class SeqPanel extends JPanel implements MouseListener, mouseDragging = false; mouseWheelPressed = false; + if (evt.isPopupTrigger()) // Windows: mouseReleased + { + showPopupMenu(evt); + evt.consume(); + return; + } + if (!editingSeqs) { doMouseReleasedDefineMode(evt); @@ -1546,8 +1553,8 @@ public class SeqPanel extends JPanel implements MouseListener, */ public void doMousePressedDefineMode(MouseEvent evt) { - int res = findRes(evt); - int seq = findSeq(evt); + final int res = findRes(evt); + final int seq = findSeq(evt); oldSeq = seq; startWrapBlock = wrappedBlock; @@ -1617,25 +1624,9 @@ public class SeqPanel extends JPanel implements MouseListener, } - if (evt.isPopupTrigger()) + if (evt.isPopupTrigger()) // Mac: mousePressed { - List allFeatures = ap.getFeatureRenderer() - .findFeaturesAtRes(sequence.getDatasetSequence(), - sequence.findPosition(res)); - List links = new ArrayList(); - for (SequenceFeature sf : allFeatures) - { - if (sf.links != null) - { - for (String link : sf.links) - { - links.add(link); - } - } - } - - PopupMenu pop = new PopupMenu(ap, null, links); - pop.show(this, evt.getX(), evt.getY()); + showPopupMenu(evt); return; } @@ -1689,6 +1680,37 @@ public class SeqPanel extends JPanel implements MouseListener, } /** + * Build and show a pop-up menu at the right-click mouse position + * + * @param evt + * @param res + * @param sequence + */ + void showPopupMenu(MouseEvent evt) + { + final int res = findRes(evt); + final int seq = findSeq(evt); + SequenceI sequence = av.getAlignment().getSequenceAt(seq); + List allFeatures = ap.getFeatureRenderer() + .findFeaturesAtRes(sequence.getDatasetSequence(), + sequence.findPosition(res)); + List links = new ArrayList(); + for (SequenceFeature sf : allFeatures) + { + if (sf.links != null) + { + for (String link : sf.links) + { + links.add(link); + } + } + } + + PopupMenu pop = new PopupMenu(ap, null, links); + pop.show(this, evt.getX(), evt.getY()); + } + + /** * DOCUMENT ME! * * @param evt