mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
Filter out shifted key presses.
Only accept key presses that do not have Shift, Ctrl or Alt pressed.
This commit is contained in:
parent
5f0a95ba11
commit
7dfe867de5
@ -210,6 +210,7 @@ export class InputDistributor {
|
|||||||
this.forwardToReceiver("keydown", {
|
this.forwardToReceiver("keydown", {
|
||||||
keyCode: keyCode,
|
keyCode: keyCode,
|
||||||
shift: event.shiftKey,
|
shift: event.shiftKey,
|
||||||
|
ctrl: event.ctrlKey,
|
||||||
alt: event.altKey,
|
alt: event.altKey,
|
||||||
initial: isInitial,
|
initial: isInitial,
|
||||||
event,
|
event,
|
||||||
@ -236,6 +237,7 @@ export class InputDistributor {
|
|||||||
this.forwardToReceiver("keyup", {
|
this.forwardToReceiver("keyup", {
|
||||||
keyCode: keyCode,
|
keyCode: keyCode,
|
||||||
shift: event.shiftKey,
|
shift: event.shiftKey,
|
||||||
|
ctrl: event.ctrlKey,
|
||||||
alt: event.altKey,
|
alt: event.altKey,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -89,9 +89,10 @@ export class Dialog {
|
|||||||
* @param {object} param0
|
* @param {object} param0
|
||||||
* @param {number} param0.keyCode
|
* @param {number} param0.keyCode
|
||||||
* @param {boolean} param0.shift
|
* @param {boolean} param0.shift
|
||||||
|
* @param {boolean} param0.ctrl
|
||||||
* @param {boolean} param0.alt
|
* @param {boolean} param0.alt
|
||||||
*/
|
*/
|
||||||
handleKeydown({ keyCode, shift, alt }) {
|
handleKeydown({ keyCode, shift, ctrl, alt }) {
|
||||||
if (keyCode === kbEnter && this.enterHandler) {
|
if (keyCode === kbEnter && this.enterHandler) {
|
||||||
this.internalButtonHandler(this.enterHandler);
|
this.internalButtonHandler(this.enterHandler);
|
||||||
return STOP_PROPAGATION;
|
return STOP_PROPAGATION;
|
||||||
|
@ -439,17 +439,18 @@ export class KeyActionMapper {
|
|||||||
* @param {object} param0
|
* @param {object} param0
|
||||||
* @param {number} param0.keyCode
|
* @param {number} param0.keyCode
|
||||||
* @param {boolean} param0.shift
|
* @param {boolean} param0.shift
|
||||||
|
* @param {boolean} param0.ctrl
|
||||||
* @param {boolean} param0.alt
|
* @param {boolean} param0.alt
|
||||||
* @param {boolean=} param0.initial
|
* @param {boolean=} param0.initial
|
||||||
*/
|
*/
|
||||||
handleKeydown({ keyCode, shift, alt, initial }) {
|
handleKeydown({ keyCode, shift, ctrl, alt, initial }) {
|
||||||
let stop = false;
|
let stop = false;
|
||||||
|
|
||||||
// Find mapping
|
// Find mapping
|
||||||
for (const key in this.keybindings) {
|
for (const key in this.keybindings) {
|
||||||
/** @type {Keybinding} */
|
/** @type {Keybinding} */
|
||||||
const binding = this.keybindings[key];
|
const binding = this.keybindings[key];
|
||||||
if (binding.keyCode === keyCode && (initial || binding.repeated)) {
|
if (binding.keyCode === keyCode && !shift && !ctrl && !alt && (initial || binding.repeated)) {
|
||||||
/** @type {Signal} */
|
/** @type {Signal} */
|
||||||
const signal = this.keybindings[key].signal;
|
const signal = this.keybindings[key].signal;
|
||||||
if (signal.dispatch() === STOP_PROPAGATION) {
|
if (signal.dispatch() === STOP_PROPAGATION) {
|
||||||
@ -468,9 +469,10 @@ export class KeyActionMapper {
|
|||||||
* @param {object} param0
|
* @param {object} param0
|
||||||
* @param {number} param0.keyCode
|
* @param {number} param0.keyCode
|
||||||
* @param {boolean} param0.shift
|
* @param {boolean} param0.shift
|
||||||
|
* @param {boolean} param0.ctrl
|
||||||
* @param {boolean} param0.alt
|
* @param {boolean} param0.alt
|
||||||
*/
|
*/
|
||||||
handleKeyup({ keyCode, shift, alt }) {
|
handleKeyup({ keyCode, shift, ctrl, alt }) {
|
||||||
// Empty
|
// Empty
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ export class KeybindingsState extends TextualGameState {
|
|||||||
type: "info",
|
type: "info",
|
||||||
});
|
});
|
||||||
|
|
||||||
dialog.inputReciever.keydown.add(({ keyCode, shift, alt, event }) => {
|
dialog.inputReciever.keydown.add(({ keyCode, shift, ctrl, alt, event }) => {
|
||||||
if (keyCode === 27) {
|
if (keyCode === 27) {
|
||||||
this.dialogs.closeDialog(dialog);
|
this.dialogs.closeDialog(dialog);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user