Bug 1349750 - Have AsyncDragMetrics use ScrollDirection instead of rolling its own direction enum. r=kats

MozReview-Commit-ID: FKK4OBx12oa
This commit is contained in:
Botond Ballo
2017-05-10 15:22:04 -04:00
parent 654c075f22
commit f740ce1992
5 changed files with 21 additions and 37 deletions

View File

@@ -1286,14 +1286,6 @@ struct ParamTraits<mozilla::layers::EventRegionsOverride>
mozilla::layers::EventRegionsOverride::ALL_BITS>
{};
template<>
struct ParamTraits<mozilla::layers::AsyncDragMetrics::DragDirection>
: public ContiguousEnumSerializer<
mozilla::layers::AsyncDragMetrics::DragDirection,
mozilla::layers::AsyncDragMetrics::DragDirection::NONE,
mozilla::layers::AsyncDragMetrics::DragDirection::SENTINEL>
{};
template<>
struct ParamTraits<mozilla::layers::AsyncDragMetrics>
{

View File

@@ -8,6 +8,7 @@
#define mozilla_layers_DragMetrics_h
#include "FrameMetrics.h"
#include "LayersTypes.h"
namespace IPC {
template <typename T> struct ParamTraits;
@@ -21,27 +22,20 @@ class AsyncDragMetrics {
friend struct IPC::ParamTraits<mozilla::layers::AsyncDragMetrics>;
public:
enum DragDirection {
NONE,
VERTICAL,
HORIZONTAL,
SENTINEL,
};
// IPC constructor
AsyncDragMetrics()
: mViewId(0)
, mPresShellId(0)
, mDragStartSequenceNumber(0)
, mScrollbarDragOffset(0)
, mDirection(NONE)
, mDirection(ScrollDirection::NONE)
{}
AsyncDragMetrics(const FrameMetrics::ViewID& aViewId,
uint32_t aPresShellId,
uint64_t aDragStartSequenceNumber,
CSSCoord aScrollbarDragOffset,
DragDirection aDirection)
ScrollDirection aDirection)
: mViewId(aViewId)
, mPresShellId(aPresShellId)
, mDragStartSequenceNumber(aDragStartSequenceNumber)
@@ -53,7 +47,7 @@ public:
uint32_t mPresShellId;
uint64_t mDragStartSequenceNumber;
CSSCoord mScrollbarDragOffset;
DragDirection mDirection;
ScrollDirection mDirection;
};
}

View File

@@ -833,8 +833,8 @@ AsyncPanZoomController::ArePointerEventsConsumable(TouchBlockState* aBlock, uint
}
template <typename Units>
static CoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, const PointTyped<Units>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static CoordTyped<Units> GetAxisStart(ScrollDirection aDir, const PointTyped<Units>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.x;
} else {
return aValue.y;
@@ -842,8 +842,8 @@ static CoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, cons
}
template <typename Units>
static CoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static CoordTyped<Units> GetAxisStart(ScrollDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.x;
} else {
return aValue.y;
@@ -851,8 +851,8 @@ static CoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, cons
}
template <typename Units>
static IntCoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, const IntRectTyped<Units>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static IntCoordTyped<Units> GetAxisStart(ScrollDirection aDir, const IntRectTyped<Units>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.x;
} else {
return aValue.y;
@@ -860,8 +860,8 @@ static IntCoordTyped<Units> GetAxisStart(AsyncDragMetrics::DragDirection aDir, c
}
template <typename Units>
static CoordTyped<Units> GetAxisEnd(AsyncDragMetrics::DragDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static CoordTyped<Units> GetAxisEnd(ScrollDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.x + aValue.width;
} else {
return aValue.y + aValue.height;
@@ -869,8 +869,8 @@ static CoordTyped<Units> GetAxisEnd(AsyncDragMetrics::DragDirection aDir, const
}
template <typename Units>
static CoordTyped<Units> GetAxisLength(AsyncDragMetrics::DragDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static CoordTyped<Units> GetAxisLength(ScrollDirection aDir, const RectTyped<Units>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.width;
} else {
return aValue.height;
@@ -878,8 +878,8 @@ static CoordTyped<Units> GetAxisLength(AsyncDragMetrics::DragDirection aDir, con
}
template <typename FromUnits, typename ToUnits>
static float GetAxisScale(AsyncDragMetrics::DragDirection aDir, const ScaleFactors2D<FromUnits, ToUnits>& aValue) {
if (aDir == AsyncDragMetrics::HORIZONTAL) {
static float GetAxisScale(ScrollDirection aDir, const ScaleFactors2D<FromUnits, ToUnits>& aValue) {
if (aDir == ScrollDirection::HORIZONTAL) {
return aValue.xScale;
} else {
return aValue.yScale;
@@ -936,7 +936,7 @@ nsEventStatus AsyncPanZoomController::HandleDragEvent(const MouseInput& aEvent,
scrollPosition = std::min(scrollPosition, maxScrollPosition);
CSSPoint scrollOffset = mFrameMetrics.GetScrollOffset();
if (aDragMetrics.mDirection == AsyncDragMetrics::HORIZONTAL) {
if (aDragMetrics.mDirection == ScrollDirection::HORIZONTAL) {
scrollOffset.x = scrollPosition;
} else {
scrollOffset.y = scrollPosition;

View File

@@ -105,10 +105,8 @@ HitTestingTreeNode::SetScrollbarData(FrameMetrics::ViewID aScrollViewId,
bool
HitTestingTreeNode::MatchesScrollDragMetrics(const AsyncDragMetrics& aDragMetrics) const
{
return ((mScrollThumbData.mDirection == ScrollDirection::HORIZONTAL &&
aDragMetrics.mDirection == AsyncDragMetrics::HORIZONTAL) ||
(mScrollThumbData.mDirection == ScrollDirection::VERTICAL &&
aDragMetrics.mDirection == AsyncDragMetrics::VERTICAL)) &&
return IsScrollThumbNode() &&
mScrollThumbData.mDirection == aDragMetrics.mDirection &&
mScrollViewId == aDragMetrics.mViewId;
}

View File

@@ -1090,8 +1090,8 @@ nsSliderFrame::StartAPZDrag(WidgetGUIEvent* aEvent)
AsyncDragMetrics dragMetrics(scrollTargetId, presShellId, inputblockId,
NSAppUnitsToFloatPixels(mDragStart,
float(AppUnitsPerCSSPixel())),
isHorizontal ? AsyncDragMetrics::HORIZONTAL :
AsyncDragMetrics::VERTICAL);
isHorizontal ? ScrollDirection::HORIZONTAL :
ScrollDirection::VERTICAL);
if (!nsLayoutUtils::HasDisplayPort(scrollableContent)) {
return;