зеркало из https://github.com/mozilla/gecko-dev.git
Bug 976605 - Increase code reuse between AsyncPanZoomController::OnSingleTapUp and OnSingleTapConfirmed. r=kats
--HG-- extra : source : 133dbc9a5d930a42c9929e1210aad436d8092745
This commit is contained in:
Родитель
46dc820f8e
Коммит
c89b3bb05b
|
@ -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;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче