void AddHeldKey(Keys key, long ts, bool bUp) { bool bFoundHeld = false; foreach (KeyHeldInfo khi in mKeysHeld) { if (khi.mKey == key) { bFoundHeld = true; khi.mTimeHeld = ts - khi.mInitialPressTime; if (bUp) { bool bFoundUp = false; foreach (KeyHeldInfo khiu in mKeysUp) { if (khiu.mKey == key) { khiu.mTimeHeld = khi.mTimeHeld; bFoundUp = true; } } if (!bFoundUp) { mKeysUp.Add(khi); } mKeysHeld.Remove(khi); break; } } } if (!bFoundHeld) { if (bUp) { //Land here after a ctrl-alt-del with code 1 return; } KeyHeldInfo kh = new KeyHeldInfo(); kh.mInitialPressTime = ts; kh.mTimeHeld = 0; kh.mKey = key; mKeysHeld.Add(kh); } }
internal KeyHeldInfo(KeyHeldInfo copyMe) { mInitialPressTime = copyMe.mInitialPressTime; mTimeHeld = copyMe.mTimeHeld; mKey = copyMe.mKey; }