Bug 976605 - Increase code reuse between AsyncPanZoomController::OnSingleTapUp and OnSingleTapConfirmed. r=kats

--HG--
extra : source : 133dbc9a5d930a42c9929e1210aad436d8092745
This commit is contained in:
Botond Ballo 2014-04-08 19:01:44 -04:00
Родитель 46dc820f8e
Коммит c89b3bb05b
2 изменённых файлов: 18 добавлений и 21 удалений

Просмотреть файл

@ -936,15 +936,12 @@ nsEventStatus AsyncPanZoomController::OnLongPressUp(const TapGestureInput& aEven
return nsEventStatus_eIgnore; return nsEventStatus_eIgnore;
} }
nsEventStatus AsyncPanZoomController::OnSingleTapUp(const TapGestureInput& aEvent) { nsEventStatus AsyncPanZoomController::GenerateSingleTap(const ScreenIntPoint& aPoint, mozilla::Modifiers aModifiers) {
APZC_LOG("%p got a single-tap-up in state %d\n", this, mState);
nsRefPtr<GeckoContentController> controller = GetGeckoContentController(); nsRefPtr<GeckoContentController> controller = GetGeckoContentController();
// If mZoomConstraints.mAllowDoubleTapZoom is true we wait for a call to OnSingleTapConfirmed before if (controller) {
// sending event to content
if (controller && !mZoomConstraints.mAllowDoubleTapZoom) {
int32_t modifiers = WidgetModifiersToDOMModifiers(aEvent.modifiers);
CSSPoint geckoScreenPoint; CSSPoint geckoScreenPoint;
if (ConvertToGecko(aEvent.mPoint, &geckoScreenPoint)) { if (ConvertToGecko(aPoint, &geckoScreenPoint)) {
int32_t modifiers = WidgetModifiersToDOMModifiers(aModifiers);
// Because this may be being running as part of APZCTreeManager::ReceiveInputEvent, // Because this may be being running as part of APZCTreeManager::ReceiveInputEvent,
// calling controller->HandleSingleTap directly might mean that content receives // calling controller->HandleSingleTap directly might mean that content receives
// the single tap message before the corresponding touch-up. To avoid that we // the single tap message before the corresponding touch-up. To avoid that we
@ -960,24 +957,21 @@ nsEventStatus AsyncPanZoomController::OnSingleTapUp(const TapGestureInput& aEven
return nsEventStatus_eIgnore; return nsEventStatus_eIgnore;
} }
nsEventStatus AsyncPanZoomController::OnSingleTapConfirmed(const TapGestureInput& aEvent) { nsEventStatus AsyncPanZoomController::OnSingleTapUp(const TapGestureInput& aEvent) {
APZC_LOG("%p got a single-tap-confirmed in state %d\n", this, mState); APZC_LOG("%p got a single-tap-up in state %d\n", this, mState);
nsRefPtr<GeckoContentController> controller = GetGeckoContentController(); // If mZoomConstraints.mAllowDoubleTapZoom is true we wait for a call to OnSingleTapConfirmed before
if (controller) { // sending event to content
int32_t modifiers = WidgetModifiersToDOMModifiers(aEvent.modifiers); if (!mZoomConstraints.mAllowDoubleTapZoom) {
CSSPoint geckoScreenPoint; return GenerateSingleTap(aEvent.mPoint, aEvent.modifiers);
if (ConvertToGecko(aEvent.mPoint, &geckoScreenPoint)) {
// See comment in OnSingleTapUp as to why we do this in PostDelayedTask.
controller->PostDelayedTask(
NewRunnableMethod(controller.get(), &GeckoContentController::HandleSingleTap,
geckoScreenPoint, modifiers, GetGuid()),
0);
return nsEventStatus_eConsumeNoDefault;
}
} }
return nsEventStatus_eIgnore; return nsEventStatus_eIgnore;
} }
nsEventStatus AsyncPanZoomController::OnSingleTapConfirmed(const TapGestureInput& aEvent) {
APZC_LOG("%p got a single-tap-confirmed in state %d\n", this, mState);
return GenerateSingleTap(aEvent.mPoint, aEvent.modifiers);
}
nsEventStatus AsyncPanZoomController::OnDoubleTap(const TapGestureInput& aEvent) { nsEventStatus AsyncPanZoomController::OnDoubleTap(const TapGestureInput& aEvent) {
APZC_LOG("%p got a double-tap in state %d\n", this, mState); APZC_LOG("%p got a double-tap in state %d\n", this, mState);
nsRefPtr<GeckoContentController> controller = GetGeckoContentController(); nsRefPtr<GeckoContentController> controller = GetGeckoContentController();

Просмотреть файл

@ -648,6 +648,9 @@ private:
// changes, as it corresponds to the scale portion of those transforms. // changes, as it corresponds to the scale portion of those transforms.
void UpdateTransformScale(); void UpdateTransformScale();
// Helper function for OnSingleTapUp() and OnSingleTapConfirmed().
nsEventStatus GenerateSingleTap(const ScreenIntPoint& aPoint, mozilla::Modifiers aModifiers);
uint64_t mLayersId; uint64_t mLayersId;
nsRefPtr<CompositorParent> mCompositorParent; nsRefPtr<CompositorParent> mCompositorParent;
PCompositorParent* mCrossProcessCompositorParent; PCompositorParent* mCrossProcessCompositorParent;