Bug 1299197 Part2: Serialize WidgetPointerHelper in IPC message

native in moebius
This commit is contained in:
janekptacijarabaci 2018-04-20 20:30:07 +02:00 committed by Roy Tam
commit f0a5f99021

View file

@ -218,6 +218,30 @@ struct ParamTraits<mozilla::WidgetWheelEvent>
}
};
template<>
struct ParamTraits<mozilla::WidgetPointerHelper>
{
typedef mozilla::WidgetPointerHelper paramType;
static void Write(Message* aMsg, const paramType& aParam)
{
WriteParam(aMsg, aParam.pointerId);
WriteParam(aMsg, aParam.tiltX);
WriteParam(aMsg, aParam.tiltY);
// We don't serialize convertToPointer and retargetedByPointerCapture since
// they are temporarily variable and should be reset to default.
}
static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
{
bool rv;
rv = ReadParam(aMsg, aIter, &aResult->pointerId) &&
ReadParam(aMsg, aIter, &aResult->tiltX) &&
ReadParam(aMsg, aIter, &aResult->tiltY);
return rv;
}
};
template<>
struct ParamTraits<mozilla::WidgetMouseEvent>
{
@ -226,13 +250,13 @@ struct ParamTraits<mozilla::WidgetMouseEvent>
static void Write(Message* aMsg, const paramType& aParam)
{
WriteParam(aMsg, static_cast<mozilla::WidgetMouseEventBase>(aParam));
WriteParam(aMsg, static_cast<mozilla::WidgetPointerHelper>(aParam));
WriteParam(aMsg, aParam.mIgnoreRootScrollFrame);
WriteParam(aMsg, static_cast<paramType::ReasonType>(aParam.mReason));
WriteParam(aMsg, static_cast<paramType::ContextMenuTriggerType>(
aParam.mContextMenuTrigger));
WriteParam(aMsg, static_cast<paramType::ExitFromType>(aParam.mExitFrom));
WriteParam(aMsg, aParam.mClickCount);
WriteParam(aMsg, aParam.pointerId);
}
static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
@ -243,12 +267,13 @@ struct ParamTraits<mozilla::WidgetMouseEvent>
paramType::ExitFromType exitFrom = 0;
rv = ReadParam(aMsg, aIter,
static_cast<mozilla::WidgetMouseEventBase*>(aResult)) &&
ReadParam(aMsg, aIter,
static_cast<mozilla::WidgetPointerHelper*>(aResult)) &&
ReadParam(aMsg, aIter, &aResult->mIgnoreRootScrollFrame) &&
ReadParam(aMsg, aIter, &reason) &&
ReadParam(aMsg, aIter, &contextMenuTrigger) &&
ReadParam(aMsg, aIter, &exitFrom) &&
ReadParam(aMsg, aIter, &aResult->mClickCount) &&
ReadParam(aMsg, aIter, &aResult->pointerId);
ReadParam(aMsg, aIter, &aResult->mClickCount);
aResult->mReason = static_cast<paramType::Reason>(reason);
aResult->mContextMenuTrigger =
static_cast<paramType::ContextMenuTrigger>(contextMenuTrigger);
@ -290,8 +315,6 @@ struct ParamTraits<mozilla::WidgetPointerEvent>
WriteParam(aMsg, static_cast<mozilla::WidgetMouseEvent>(aParam));
WriteParam(aMsg, aParam.mWidth);
WriteParam(aMsg, aParam.mHeight);
WriteParam(aMsg, aParam.tiltX);
WriteParam(aMsg, aParam.tiltY);
WriteParam(aMsg, aParam.mIsPrimary);
}
@ -301,8 +324,6 @@ struct ParamTraits<mozilla::WidgetPointerEvent>
ReadParam(aMsg, aIter, static_cast<mozilla::WidgetMouseEvent*>(aResult)) &&
ReadParam(aMsg, aIter, &aResult->mWidth) &&
ReadParam(aMsg, aIter, &aResult->mHeight) &&
ReadParam(aMsg, aIter, &aResult->tiltX) &&
ReadParam(aMsg, aIter, &aResult->tiltY) &&
ReadParam(aMsg, aIter, &aResult->mIsPrimary);
return rv;
}