示例#1
0
        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);
            }
        }
示例#2
0
 internal KeyHeldInfo(KeyHeldInfo copyMe)
 {
     mInitialPressTime = copyMe.mInitialPressTime;
     mTimeHeld         = copyMe.mTimeHeld;
     mKey = copyMe.mKey;
 }