summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar asie2019-06-15 08:54:48 +0200
committerGravatar asie2019-06-15 08:54:48 +0200
commit2341cdeb6fe664fe74657d47c570bc091804131c (patch)
tree3c72fb66d122ba2798ea6836441e0833e3bf51ad
parentupdate libraries (diff)
downloadenigma-fork-2341cdeb6fe664fe74657d47c570bc091804131c.tar.gz
enigma-fork-2341cdeb6fe664fe74657d47c570bc091804131c.tar.xz
enigma-fork-2341cdeb6fe664fe74657d47c570bc091804131c.zip
fix unwanted declaration navigation during Quick Find
-rw-r--r--src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java7
-rw-r--r--src/main/java/cuchaz/enigma/gui/Gui.java7
-rw-r--r--src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java19
3 files changed, 26 insertions, 7 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java b/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java
index 0c1d4cd..c912be3 100644
--- a/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java
+++ b/src/main/java/cuchaz/enigma/gui/EnigmaQuickFindDialog.java
@@ -36,7 +36,12 @@ public class EnigmaQuickFindDialog extends QuickFindDialog {
36 public void showFor(JTextComponent target) { 36 public void showFor(JTextComponent target) {
37 String selectedText = target.getSelectedText(); 37 String selectedText = target.getSelectedText();
38 38
39 super.showFor(target); 39 try {
40 super.showFor(target);
41 } catch (Exception e) {
42 e.printStackTrace();
43 return;
44 }
40 45
41 Container view = target.getParent(); 46 Container view = target.getParent();
42 Point loc = new Point(0, view.getHeight() - getSize().height); 47 Point loc = new Point(0, view.getHeight() - getSize().height);
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java
index a61f4dd..dceeaa4 100644
--- a/src/main/java/cuchaz/enigma/gui/Gui.java
+++ b/src/main/java/cuchaz/enigma/gui/Gui.java
@@ -528,14 +528,14 @@ public class Gui {
528 return combo; 528 return combo;
529 } 529 }
530 530
531 public void onCaretMove(int pos) { 531 public void onCaretMove(int pos, boolean fromClick) {
532 Token token = this.controller.getToken(pos); 532 Token token = this.controller.getToken(pos);
533 boolean isToken = token != null; 533 boolean isToken = token != null;
534 534
535 cursorReference = this.controller.getReference(token); 535 cursorReference = this.controller.getReference(token);
536 Entry<?> referenceEntry = cursorReference != null ? cursorReference.entry : null; 536 Entry<?> referenceEntry = cursorReference != null ? cursorReference.entry : null;
537 537
538 if (referenceEntry != null && shouldNavigateOnClick) { 538 if (referenceEntry != null && shouldNavigateOnClick && fromClick) {
539 shouldNavigateOnClick = false; 539 shouldNavigateOnClick = false;
540 Entry<?> navigationEntry = referenceEntry; 540 Entry<?> navigationEntry = referenceEntry;
541 if (cursorReference.context == null) { 541 if (cursorReference.context == null) {
@@ -768,8 +768,9 @@ public class Gui {
768 if (response == JOptionPane.YES_OPTION) { 768 if (response == JOptionPane.YES_OPTION) {
769 this.saveMapping(); 769 this.saveMapping();
770 this.frame.dispose(); 770 this.frame.dispose();
771 } else if (response == JOptionPane.NO_OPTION) 771 } else if (response == JOptionPane.NO_OPTION) {
772 this.frame.dispose(); 772 this.frame.dispose();
773 }
773 774
774 return null; 775 return null;
775 }, "Save and exit", "Discard changes", "Cancel"); 776 }, "Save and exit", "Discard changes", "Cancel");
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
index ff84648..0a85f0a 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
@@ -16,14 +16,21 @@ import java.awt.event.MouseAdapter;
16import java.awt.event.MouseEvent; 16import java.awt.event.MouseEvent;
17 17
18public class PanelEditor extends JEditorPane { 18public class PanelEditor extends JEditorPane {
19 private boolean mouseIsPressed = false;
20
19 public PanelEditor(Gui gui) { 21 public PanelEditor(Gui gui) {
20 this.setEditable(false); 22 this.setEditable(false);
21 this.setSelectionColor(new Color(31, 46, 90)); 23 this.setSelectionColor(new Color(31, 46, 90));
22 this.setCaret(new BrowserCaret()); 24 this.setCaret(new BrowserCaret());
23 this.addCaretListener(event -> gui.onCaretMove(event.getDot())); 25 this.addCaretListener(event -> gui.onCaretMove(event.getDot(), mouseIsPressed));
24 final PanelEditor self = this; 26 final PanelEditor self = this;
25 this.addMouseListener(new MouseAdapter() { 27 this.addMouseListener(new MouseAdapter() {
26 @Override 28 @Override
29 public void mousePressed(MouseEvent mouseEvent) {
30 mouseIsPressed = true;
31 }
32
33 @Override
27 public void mouseReleased(MouseEvent e) { 34 public void mouseReleased(MouseEvent e) {
28 switch (e.getButton()) { 35 switch (e.getButton()) {
29 case MouseEvent.BUTTON3: // Right click 36 case MouseEvent.BUTTON3: // Right click
@@ -38,12 +45,15 @@ public class PanelEditor extends JEditorPane {
38 gui.getController().openNextReference(); 45 gui.getController().openNextReference();
39 break; 46 break;
40 } 47 }
48 mouseIsPressed = false;
41 } 49 }
42 }); 50 });
43 this.addKeyListener(new KeyAdapter() { 51 this.addKeyListener(new KeyAdapter() {
44 @Override 52 @Override
45 public void keyPressed(KeyEvent event) { 53 public void keyPressed(KeyEvent event) {
46 if (event.isControlDown()) { 54 if (event.isControlDown()) {
55 gui.setShouldNavigateOnClick(false);
56
47 switch (event.getKeyCode()) { 57 switch (event.getKeyCode()) {
48 case KeyEvent.VK_I: 58 case KeyEvent.VK_I:
49 gui.popupMenu.showInheritanceMenu.doClick(); 59 gui.popupMenu.showInheritanceMenu.doClick();
@@ -81,12 +91,15 @@ public class PanelEditor extends JEditorPane {
81 gui.getController().refreshCurrentClass(); 91 gui.getController().refreshCurrentClass();
82 break; 92 break;
83 93
94 case KeyEvent.VK_F:
95 // prevent navigating on click when quick find activated
96 break;
97
84 default: 98 default:
99 gui.setShouldNavigateOnClick(true); // CTRL
85 break; 100 break;
86 } 101 }
87 } 102 }
88
89 gui.setShouldNavigateOnClick(event.isControlDown());
90 } 103 }
91 104
92 @Override 105 @Override