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);
}
Beispiel #2
0
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);
}