void InputContext::ReleaseAllKeys() { Vector<Key> keysToRelease; // We double buffer the to-be-released keys first to a temporary list, since invoking the trigger // function will add new entries to newKeyEvents. for(auto iter = heldKeysBuffered.Begin(); iter != heldKeysBuffered.End(); ++iter) keysToRelease.Push(iter->first_); for(auto iter = newKeyEvents.Begin(); iter != newKeyEvents.End(); ++iter) keysToRelease.Push(iter->first_); for(auto iter = keysToRelease.Begin(); iter != keysToRelease.End(); ++iter) TriggerKeyReleaseEvent(*iter); }
void InputContext::ReleaseAllKeys() { std::vector<Qt::Key> keysToRelease; // We double buffer the to-be-released keys first to a temporary list, since invoking the trigger // function will add new entries to newKeyEvents. for(HeldKeysMap::iterator iter = heldKeysBuffered.begin(); iter != heldKeysBuffered.end(); ++iter) keysToRelease.push_back(iter->first); for(HeldKeysMap::iterator iter = newKeyEvents.begin(); iter != newKeyEvents.end(); ++iter) keysToRelease.push_back(iter->first); for(std::vector<Qt::Key>::iterator iter = keysToRelease.begin(); iter != keysToRelease.end(); ++iter) TriggerKeyReleaseEvent(*iter); }