diff --git a/gfx/layers/ipc/AsyncPanZoomController.cpp b/gfx/layers/ipc/AsyncPanZoomController.cpp index 7ef413bc4523..bf7f69b3d9da 100644 --- a/gfx/layers/ipc/AsyncPanZoomController.cpp +++ b/gfx/layers/ipc/AsyncPanZoomController.cpp @@ -393,7 +393,7 @@ AsyncPanZoomController::AsyncPanZoomController(uint64_t aLayersId, mTouchListenerTimeoutTask(nullptr), mX(MOZ_THIS_IN_INITIALIZER_LIST()), mY(MOZ_THIS_IN_INITIALIZER_LIST()), - mZoomConstraints(true, MIN_ZOOM, MAX_ZOOM), + mZoomConstraints(false, MIN_ZOOM, MAX_ZOOM), mLastSampleTime(GetFrameTime()), mState(NOTHING), mLastAsyncScrollTime(GetFrameTime()), @@ -1643,6 +1643,8 @@ void AsyncPanZoomController::TimeoutTouchListeners() { } void AsyncPanZoomController::UpdateZoomConstraints(const ZoomConstraints& aConstraints) { + APZC_LOG("%p updating zoom constraints to %d %f %f\n", this, aConstraints.mAllowZoom, + aConstraints.mMinZoom.scale, aConstraints.mMaxZoom.scale); mZoomConstraints.mAllowZoom = aConstraints.mAllowZoom; mZoomConstraints.mMinZoom = (MIN_ZOOM > aConstraints.mMinZoom ? MIN_ZOOM : aConstraints.mMinZoom); mZoomConstraints.mMaxZoom = (MAX_ZOOM > aConstraints.mMaxZoom ? aConstraints.mMaxZoom : MAX_ZOOM); diff --git a/widget/windows/winrt/APZController.cpp b/widget/windows/winrt/APZController.cpp index 4d8518bfa87a..8fd4afb181d1 100644 --- a/widget/windows/winrt/APZController.cpp +++ b/widget/windows/winrt/APZController.cpp @@ -266,6 +266,20 @@ APZController::PostDelayedTask(Task* aTask, int aDelayMs) MessageLoop::current()->PostDelayedTask(FROM_HERE, aTask, aDelayMs); } +bool +APZController::GetRootZoomConstraints(ZoomConstraints* aOutConstraints) +{ + if (aOutConstraints) { + // Until we support the meta-viewport tag properly allow zooming + // from 1/4 to 4x by default. + aOutConstraints->mAllowZoom = true; + aOutConstraints->mMinZoom = CSSToScreenScale(0.25f); + aOutConstraints->mMaxZoom = CSSToScreenScale(4.0f); + return true; + } + return false; +} + // apzc notifications class TransformedStartEvent : public nsRunnable diff --git a/widget/windows/winrt/APZController.h b/widget/windows/winrt/APZController.h index 418e251db8cf..e1afda2456d1 100644 --- a/widget/windows/winrt/APZController.h +++ b/widget/windows/winrt/APZController.h @@ -23,6 +23,7 @@ class APZController : { typedef mozilla::layers::FrameMetrics FrameMetrics; typedef mozilla::layers::ScrollableLayerGuid ScrollableLayerGuid; + typedef mozilla::layers::ZoomConstraints ZoomConstraints; public: APZController() : @@ -38,6 +39,7 @@ public: virtual void HandleLongTapUp(const mozilla::CSSIntPoint& aPoint, int32_t aModifiers); virtual void SendAsyncScrollDOMEvent(bool aIsRoot, const mozilla::CSSRect &aContentRect, const mozilla::CSSSize &aScrollableSize); virtual void PostDelayedTask(Task* aTask, int aDelayMs); + virtual bool GetRootZoomConstraints(ZoomConstraints* aOutConstraints); virtual void NotifyTransformBegin(const ScrollableLayerGuid& aGuid); virtual void NotifyTransformEnd(const ScrollableLayerGuid& aGuid);