mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-02-08 00:21:23 +01:00
keydownWrapper
This commit is contained in:
parent
50a4074c39
commit
b2cdd441d1
@ -210,15 +210,8 @@ const AppInner = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function handleKeyDown(ev: KeyboardEvent) {
|
|
||||||
let waveEvent = keyutil.adaptFromReactOrNativeKeyEvent(ev);
|
function handleKeyDown(waveEvent: WaveKeyboardEvent): boolean {
|
||||||
const rtn = handleKeyDownInternal(waveEvent);
|
|
||||||
if (rtn) {
|
|
||||||
ev.preventDefault();
|
|
||||||
ev.stopPropagation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function handleKeyDownInternal(waveEvent: WaveKeyboardEvent): boolean {
|
|
||||||
// global key handler for now (refactor later)
|
// global key handler for now (refactor later)
|
||||||
if (keyutil.checkKeyPressed(waveEvent, "Cmd:]")) {
|
if (keyutil.checkKeyPressed(waveEvent, "Cmd:]")) {
|
||||||
switchTab(1);
|
switchTab(1);
|
||||||
@ -247,7 +240,7 @@ const AppInner = () => {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const staticKeyDownHandler = handleKeyDown;
|
const staticKeyDownHandler = keyutil.keydownWrapper(handleKeyDown);
|
||||||
document.addEventListener("keydown", staticKeyDownHandler);
|
document.addEventListener("keydown", staticKeyDownHandler);
|
||||||
return () => {
|
return () => {
|
||||||
document.removeEventListener("keydown", staticKeyDownHandler);
|
document.removeEventListener("keydown", staticKeyDownHandler);
|
||||||
|
@ -213,6 +213,7 @@ const TerminalView = ({ blockId }: { blockId: string }) => {
|
|||||||
termWrap.initTerminal();
|
termWrap.initTerminal();
|
||||||
return () => {
|
return () => {
|
||||||
termWrap.dispose();
|
termWrap.dispose();
|
||||||
|
rszObs.disconnect();
|
||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
@ -12,6 +12,19 @@ function setKeyUtilPlatform(platform: NodeJS.Platform) {
|
|||||||
PLATFORM = platform;
|
PLATFORM = platform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function keydownWrapper(
|
||||||
|
fn: (waveEvent: WaveKeyboardEvent) => boolean
|
||||||
|
): (event: KeyboardEvent | React.KeyboardEvent) => void {
|
||||||
|
return (event: KeyboardEvent | React.KeyboardEvent) => {
|
||||||
|
const waveEvent = adaptFromReactOrNativeKeyEvent(event);
|
||||||
|
const rtnVal = fn(waveEvent);
|
||||||
|
if (rtnVal) {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function parseKey(key: string): { key: string; type: string } {
|
function parseKey(key: string): { key: string; type: string } {
|
||||||
let regexMatch = key.match(KeyTypeCodeRegex);
|
let regexMatch = key.match(KeyTypeCodeRegex);
|
||||||
if (regexMatch != null && regexMatch.length > 1) {
|
if (regexMatch != null && regexMatch.length > 1) {
|
||||||
@ -142,6 +155,7 @@ export {
|
|||||||
adaptFromElectronKeyEvent,
|
adaptFromElectronKeyEvent,
|
||||||
adaptFromReactOrNativeKeyEvent,
|
adaptFromReactOrNativeKeyEvent,
|
||||||
checkKeyPressed,
|
checkKeyPressed,
|
||||||
|
keydownWrapper,
|
||||||
parseKeyDescription,
|
parseKeyDescription,
|
||||||
setKeyUtilPlatform,
|
setKeyUtilPlatform,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user