From e40691411aa38ef7ddbe35ca7860cc8acee0c492 Mon Sep 17 00:00:00 2001 From: "jean.chalard" Date: Thu, 18 Feb 2010 18:05:19 +0000 Subject: [PATCH] J : * Don't forget to enqueue unbound keys. --- JGE/src/JGE.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/JGE/src/JGE.cpp b/JGE/src/JGE.cpp index 45b2b202d..8cb9773f3 100644 --- a/JGE/src/JGE.cpp +++ b/JGE/src/JGE.cpp @@ -78,8 +78,10 @@ static map oldHolds; void JGE::PressKey(const LocalKeySym sym) { const pair rng = keyBinds.equal_range(sym); - for (keycodes_it it = rng.first; it != rng.second; ++it) - keyBuffer.push(*it); + if (rng.first == rng.second) + keyBuffer.push(make_pair(sym, JGE_BTN_NONE)); + else for (keycodes_it it = rng.first; it != rng.second; ++it) + keyBuffer.push(*it); } void JGE::PressKey(const JButton sym) { @@ -88,7 +90,9 @@ void JGE::PressKey(const JButton sym) void JGE::HoldKey(const LocalKeySym sym) { const pair rng = keyBinds.equal_range(sym); - for (keycodes_it it = rng.first; it != rng.second; ++it) + if (rng.first == rng.second) + keyBuffer.push(make_pair(sym, JGE_BTN_NONE)); + else for (keycodes_it it = rng.first; it != rng.second; ++it) { keyBuffer.push(*it); if (holds.end() == holds.find(it->second)) @@ -98,7 +102,9 @@ void JGE::HoldKey(const LocalKeySym sym) void JGE::HoldKey_NoRepeat(const LocalKeySym sym) { const pair rng = keyBinds.equal_range(sym); - for (keycodes_it it = rng.first; it != rng.second; ++it) + if (rng.first == rng.second) + keyBuffer.push(make_pair(sym, JGE_BTN_NONE)); + else for (keycodes_it it = rng.first; it != rng.second; ++it) { keyBuffer.push(*it); if (holds.end() == holds.find(it->second))