diff --git a/client/app/scripts/components/app.js b/client/app/scripts/components/app.js
index 32bb23cf7..11f27b0f0 100644
--- a/client/app/scripts/components/app.js
+++ b/client/app/scripts/components/app.js
@@ -54,6 +54,8 @@ class App extends React.Component {
}
onKeyUp(ev) {
+ const { showingTerminal } = this.props;
+
// don't get esc in onKeyPress
if (ev.keyCode === ESC_KEY_CODE) {
this.props.dispatch(hitEsc());
@@ -61,7 +63,7 @@ class App extends React.Component {
this.props.dispatch(hitEnter());
} else if (ev.keyCode === BACKSPACE_KEY_CODE) {
this.props.dispatch(hitBackspace());
- } else if (ev.code === 'KeyD' && ev.ctrlKey) {
+ } else if (ev.code === 'KeyD' && ev.ctrlKey && !showingTerminal) {
toggleDebugToolbar();
this.forceUpdate();
}
@@ -95,10 +97,7 @@ class App extends React.Component {
}
render() {
- const { availableCanvasMetrics, nodeDetails, controlPipes, showingHelp } = this.props;
- const showingDetails = nodeDetails.size > 0;
- const showingTerminal = controlPipes.size > 0;
- const showingMetricsSelector = availableCanvasMetrics.count() > 0;
+ const { showingDetails, showingHelp, showingMetricsSelector, showingTerminal } = this.props;
return (
@@ -137,13 +136,13 @@ class App extends React.Component {
function mapStateToProps(state) {
return {
activeTopologyOptions: getActiveTopologyOptions(state),
- availableCanvasMetrics: state.get('availableCanvasMetrics'),
- controlPipes: state.get('controlPipes'),
- nodeDetails: state.get('nodeDetails'),
routeSet: state.get('routeSet'),
searchFocused: state.get('searchFocused'),
searchQuery: state.get('searchQuery'),
+ showingDetails: state.get('nodeDetails').size > 0,
showingHelp: state.get('showingHelp'),
+ showingMetricsSelector: state.get('availableCanvasMetrics').count() > 0,
+ showingTerminal: state.get('controlPipes').size > 0,
urlState: getUrlState(state)
};
}
diff --git a/client/app/scripts/utils/web-api-utils.js b/client/app/scripts/utils/web-api-utils.js
index f54a70357..38c915a7e 100644
--- a/client/app/scripts/utils/web-api-utils.js
+++ b/client/app/scripts/utils/web-api-utils.js
@@ -1,7 +1,7 @@
import debug from 'debug';
import reqwest from 'reqwest';
-import { clearControlError, closeWebsocket, openWebsocket, receiveError,
+import { blurSearch, clearControlError, closeWebsocket, openWebsocket, receiveError,
receiveApiDetails, receiveNodesDelta, receiveNodeDetails, receiveControlError,
receiveControlNodeRemoved, receiveControlPipe, receiveControlPipeStatus,
receiveControlSuccess, receiveTopologies, receiveNotFound,
@@ -208,6 +208,7 @@ export function doControlRequest(nodeId, control, dispatch) {
dispatch(receiveControlSuccess(nodeId));
if (res) {
if (res.pipe) {
+ dispatch(blurSearch());
dispatch(receiveControlPipe(res.pipe, nodeId, res.raw_tty, true));
}
if (res.removedNode) {