private void ProcessMove(IMouseState currState)
        {
            if (currState.Position == prevState.Position)
            {
                return;
            }

            canBeClick       = false;
            canBeDoubleClick = false;

            var delta = currState.Position - prevState.Position;
            var state = prevState.CloneTyped();

            state.Position           = currState.Position;
            state.NormalizedPosition = currState.NormalizedPosition;
            state.HmgnPosition       = currState.HmgnPosition;
            FireMove(state, delta);
            prevState = state;
        }