From 82a3bfc6e695cbc9ac39dbe0df6a1aa7d0720c44 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Mon, 16 Sep 2013 21:35:40 +0530 Subject: [PATCH] completion screen location update bug fix --- pdex/src/processing/mode/experimental/ASTGenerator.java | 2 +- pdex/src/processing/mode/experimental/CompletionPanel.java | 4 ++-- pdex/src/processing/mode/experimental/TextArea.java | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 62b4e908a..c563c43fb 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -779,7 +779,7 @@ public class ASTGenerator { protected ArrayList candidates; protected String lastPredictedWord = " "; //protected AtomicBoolean predictionsEnabled; - protected int predictionMinLength = 3; + protected int predictionMinLength = 2; public void preparePredictions(final String word, final int line, final int lineStartNonWSOffset) { if(!ExperimentalMode.codeCompletionsEnabled) return; diff --git a/pdex/src/processing/mode/experimental/CompletionPanel.java b/pdex/src/processing/mode/experimental/CompletionPanel.java index a8f44d190..6e1f36e61 100644 --- a/pdex/src/processing/mode/experimental/CompletionPanel.java +++ b/pdex/src/processing/mode/experimental/CompletionPanel.java @@ -92,7 +92,7 @@ public class CompletionPanel { return list; } - public boolean updateList(final DefaultListModel items, String newSubword, int position){ + public boolean updateList(final DefaultListModel items, String newSubword, Point location, int position){ scrollPane.getViewport().removeAll(); Dimension dimen = popupMenu.getSize(); completionList.setModel(items); @@ -101,7 +101,7 @@ public class CompletionPanel { scrollPane.setViewportView(completionList); scrollPane.validate(); popupMenu.setSize(dimen); - + popupMenu.setLocation(location); this.subWord = new String(newSubword); if (subWord.indexOf('.') != -1) this.subWord = subWord.substring(subWord.lastIndexOf('.') + 1); diff --git a/pdex/src/processing/mode/experimental/TextArea.java b/pdex/src/processing/mode/experimental/TextArea.java index 38f891dc4..9183d9855 100644 --- a/pdex/src/processing/mode/experimental/TextArea.java +++ b/pdex/src/processing/mode/experimental/TextArea.java @@ -720,6 +720,7 @@ public class TextArea extends JEditTextArea { - getLineStartOffset(getCaretLine())); location.y = lineToY(getCaretLine()) + getPainter().getFontMetrics().getHeight(); + log("TA position: " + location); } catch (Exception e2) { e2.printStackTrace(); return; @@ -732,7 +733,9 @@ public class TextArea extends JEditTextArea { suggestion = new CompletionPanel(this, position, subWord, defListModel, location,editor); else - suggestion.updateList(defListModel, subWord, position); + suggestion.updateList(defListModel, subWord, + new Point(getLocationOnScreen().x + location.x, + getLocationOnScreen().y + location.y), position); suggestion.setVisible(true); // requestFocusInWindow(); SwingUtilities.invokeLater(new Runnable() {