mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
30 lines • 1.02 kB
JavaScript
import { event } from "@lincode/events";
const [emitKeyClear, onKeyClear] = event();
export { onKeyClear };
window.addEventListener("blur", () => emitKeyClear());
window.addEventListener("focus", () => emitKeyClear());
document.addEventListener("visibilitychange", () => emitKeyClear());
const shiftMetaPressed = new Set();
onKeyClear(() => shiftMetaPressed.clear());
let queueClear = false;
const tryClear = () => {
if (!queueClear)
return;
queueClear = false;
emitKeyClear();
};
document.addEventListener("keydown", (e) => {
tryClear();
if (e.key === "Shift" || e.key === "Meta")
shiftMetaPressed.add(e.key);
if (shiftMetaPressed.has("Meta") && shiftMetaPressed.has("Shift")) {
emitKeyClear();
queueClear = true;
}
});
document.addEventListener("keyup", (e) => {
if (e.key === "Shift" || e.key === "Meta")
emitKeyClear();
});
document.addEventListener("mousedown", tryClear);
//# sourceMappingURL=onKeyClear.js.map