diff --git a/diylc/diylc-core/src/main/resources/update.xml b/diylc/diylc-core/src/main/resources/update.xml
index a84c010e..942fdbb2 100644
--- a/diylc/diylc-core/src/main/resources/update.xml
+++ b/diylc/diylc-core/src/main/resources/update.xml
@@ -309,6 +309,10 @@
IMPROVEMENT
Improved the styling of circuit analysis reports
+
+ BUG_FIX
+ X or Q keys sometimes do not register in secondary dialogs
+
BUG_FIX
If the internet connection is present, but unstable, the application starts but nothing can be clicked until the connection restores
diff --git a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/explorer/ExplorerPlugin.java b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/explorer/ExplorerPlugin.java
index 39e4d9f0..89948891 100644
--- a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/explorer/ExplorerPlugin.java
+++ b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/explorer/ExplorerPlugin.java
@@ -90,7 +90,9 @@ public class ExplorerPlugin implements IPlugIn {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
- if (e.getKeyChar() == 'x' && e.getModifiersEx() == 0
+ if (explorerPane != null
+ && (canvasPanel.hasFocus() || explorerPane.hasFocus())
+ && e.getKeyChar() == 'x' && e.getModifiersEx() == 0
&& ConfigurationManager.getInstance()
.readBoolean(ConfigPlugin.PROJECT_EXPLORER, true)) {
explorerPane.getSearchField().requestFocusInWindow();
diff --git a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/tree/ComponentTree.java b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/tree/ComponentTree.java
index 39e009b6..db14d14d 100644
--- a/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/tree/ComponentTree.java
+++ b/diylc/diylc-swing/src/main/java/org/diylc/swing/plugins/tree/ComponentTree.java
@@ -80,12 +80,13 @@ public class ComponentTree implements IPlugIn {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
- if ((canvasPanel.hasFocus() || treePanel.hasFocus())
- && e.getKeyChar() == 'q'
+ if (treePanel != null
+ && (canvasPanel.hasFocus() || treePanel.hasFocus())
+ && e.getKeyChar() == 'q' && e.getModifiersEx() == 0
&& ConfigurationManager.getInstance()
.readString(ConfigPlugin.COMPONENT_BROWSER, ConfigPlugin.SEARCHABLE_TREE)
.equals(ConfigPlugin.SEARCHABLE_TREE)) {
- getTreePanel().getSearchField().requestFocusInWindow();
+ treePanel.getSearchField().requestFocusInWindow();
return true;
}
return false;