From 9b59b2f75de8a523cba255335fb8d9350716c8c5 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 23 Feb 2021 14:21:15 +0100 Subject: Fix keyWasDown in input handler This was changed 291a6b70d674d9003f522b5875a60f7e2753e32b but should have never been done. --- src/client/inputhandler.cpp | 11 +++-------- src/client/inputhandler.h | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'src/client') diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index 608a405a8..978baa320 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -113,17 +113,12 @@ bool MyEventReceiver::OnEvent(const SEvent &event) if (event.EventType == irr::EET_KEY_INPUT_EVENT) { const KeyPress &keyCode = event.KeyInput; if (keysListenedFor[keyCode]) { - // If the key is being held down then the OS may - // send a continuous stream of keydown events. - // In this case, we don't want to let this - // stream reach the application as it will cause - // certain actions to repeat constantly. if (event.KeyInput.PressedDown) { - if (!IsKeyDown(keyCode)) { - keyWasDown.set(keyCode); + if (!IsKeyDown(keyCode)) keyWasPressed.set(keyCode); - } + keyIsDown.set(keyCode); + keyWasDown.set(keyCode); } else { if (IsKeyDown(keyCode)) keyWasReleased.set(keyCode); diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index 7487bbdc7..1fb4cf0ec 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -201,7 +201,7 @@ private: // The current state of keys KeyList keyIsDown; - // Whether a key was down + // Like keyIsDown but only reset when that key is read KeyList keyWasDown; // Whether a key has just been pressed -- cgit v1.2.3