!1666 优化:当输入焦点在命令行输入框时才响应组合键,其他输入框不响应组合键

pull/1675/head
ChenX 3 years ago
parent 629bd045de
commit bf9352546a

@ -1,4 +1,5 @@
import { Icon } from '@blueprintjs/core'; import { Icon } from '@blueprintjs/core';
import hotkeys from 'hotkeys-js-ext';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import * as React from 'react'; import * as React from 'react';
import { end } from 'xaop'; import { end } from 'xaop';
@ -76,6 +77,22 @@ export class InputHint extends React.Component<InputHintProps, InputHitState>
if (e.keyCode === KeyBoard.Space || e.keyCode === KeyBoard.Enter) if (e.keyCode === KeyBoard.Space || e.keyCode === KeyBoard.Enter)
return true; return true;
}); });
//在命令输入框时可以响应组合键,其他的输入框时不响应组合键
hotkeys.filter = e =>
{
if (e.target === this.inputEl) return true;
//@ts-ignore
if (e.target.nodeName === "INPUT" || e.target.nodeName === "TEXTAREA")
{
if (e.keyCode === KeyBoard.F1)
e.preventDefault();
return false;
}
return true;
};
} }
// 处理input输入的命令,尝试感知 // 处理input输入的命令,尝试感知

@ -1,5 +1,4 @@
import { Intent } from '@blueprintjs/core'; import { Intent } from '@blueprintjs/core';
import hotkeys from 'hotkeys-js-ext';
import { Cache, Layers, Object3D } from 'three'; import { Cache, Layers, Object3D } from 'three';
import { ErrorMonitoring, ReportError } from './Common/ErrorMonitoring'; import { ErrorMonitoring, ReportError } from './Common/ErrorMonitoring';
import { LogEnable, ReportErrorWrap } from './Common/Log'; import { LogEnable, ReportErrorWrap } from './Common/Log';
@ -62,7 +61,7 @@ document.addEventListener("keydown", (e: KeyboardEvent) =>
}), { passive: false }; }), { passive: false };
//接受所有输入框的快捷键(因为我们的输入框不多,如果输入框要避免响应,那么必须监听键盘按下事件,并且阻止默认和防止冒泡) //接受所有输入框的快捷键(因为我们的输入框不多,如果输入框要避免响应,那么必须监听键盘按下事件,并且阻止默认和防止冒泡)
hotkeys.filter = e => true; // hotkeys.filter = e => true;//我们将在inputhint中修改这个
window.onload = function () window.onload = function ()
{ {

Loading…
Cancel
Save