// ReSharper disable UnusedMember.Local void ShowDebugInfo(FilterEventArgs args, string message) { var eventArgs = args as CollisionFilterEventArgs; if (eventArgs != null && eventArgs.MarginData.Length > 0) { WindowMessage = message + eventArgs.MarginData[0].GetDebugString(); } }
void FireMouseUp(object sender, FilterEventArgs e) { //Hands are not on each other lock (SyncRoot) { //ShowDebugInfo(e, "Mouse up "); _mouseUpCounter++; //only act after 3 hits if (_mouseUpCounter < NoiseFilter) return; _mouseDownCounter = 0; //Prevent int overflow if (_mouseUpCounter > int.MaxValue) _mouseUpCounter = NoiseFilter; //check the time interval if (!CheckEventInterval(ref _mouseUpHit, MouseButtonsIntervalInMilliseconds) || !_mouseDown) return; _mouseDown = false; WindowMessage = "Mouse up"; if (!_controlMouse) return; MouseSimulator.MouseUp(System.Windows.Input.MouseButton.Left); } }