private void CheckMouseDragged(Func <MouseState, ButtonState> getButtonState, MouseButton button) { if ((getButtonState(_currentState) == ButtonState.Pressed) && (getButtonState(_previousState) == ButtonState.Pressed)) { var args = new MouseEventArgs(ViewportAdapter, _gameTime.TotalGameTime, _previousState, _currentState, button); if (_mouseDownArgs.Button == args.Button) { if (_dragging) { MouseDrag?.Invoke(this, args); } else { // Only start to drag based on DragThreshold var clickMovement = DistanceBetween(args.Position, _mouseDownArgs.Position); if (clickMovement > DragThreshold) { _dragging = true; MouseDragStart?.Invoke(this, args); } } } } }
private void _mouseListener_MouseDragStart(object sender, MouseEventArgs e) { _scene?.FireMouseDragStart(e); MouseDragStart?.Invoke(sender, e); #if DEBUG Logger.Log("Mouse drag start."); #endif }
internal void FireMouseDragStart(MouseEventArgs e) { OnMouseDragStart(e); MouseDragStart?.Invoke(this, e); }