public bool AcceptKeyNow(int key) { var k = key < 0 ? -key : key; if (!currentState.acceptInput || k < 1 || k > 0x0D) { return(false); } var ng = currentState.info.groupMask; foreach (var pair in m_globalKeys) { if (pair.Key != 0 && !ng.BitMask(pair.Key)) { continue; } if (pair.Value.BitMask(k)) { return(true); } } return(currentState.AcceptKey(k)); }