зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 95e61ede373d (bug 1257269) because it caused merge conflicts with m-c/fx-team
MozReview-Commit-ID: 2Zt4WJqmlzu
This commit is contained in:
Родитель
4eeb180418
Коммит
81af293e82
|
@ -145,7 +145,6 @@ public:
|
||||||
|
|
||||||
virtual void UpdateOverscrollVelocity(const float aX, const float aY) {}
|
virtual void UpdateOverscrollVelocity(const float aX, const float aY) {}
|
||||||
virtual void UpdateOverscrollOffset(const float aX,const float aY) {}
|
virtual void UpdateOverscrollOffset(const float aX,const float aY) {}
|
||||||
virtual void SetScrollingRootContent(const bool isRootContent) {}
|
|
||||||
|
|
||||||
GeckoContentController() {}
|
GeckoContentController() {}
|
||||||
virtual void ChildAdopted() {}
|
virtual void ChildAdopted() {}
|
||||||
|
|
|
@ -1326,11 +1326,6 @@ nsEventStatus AsyncPanZoomController::OnTouchMove(const MultiTouchInput& aEvent)
|
||||||
nsEventStatus AsyncPanZoomController::OnTouchEnd(const MultiTouchInput& aEvent) {
|
nsEventStatus AsyncPanZoomController::OnTouchEnd(const MultiTouchInput& aEvent) {
|
||||||
APZC_LOG("%p got a touch-end in state %d\n", this, mState);
|
APZC_LOG("%p got a touch-end in state %d\n", this, mState);
|
||||||
|
|
||||||
RefPtr<GeckoContentController> controller = GetGeckoContentController();
|
|
||||||
if (controller) {
|
|
||||||
controller->SetScrollingRootContent(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
OnTouchEndOrCancel();
|
OnTouchEndOrCancel();
|
||||||
|
|
||||||
// In case no touch behavior triggered previously we can avoid sending
|
// In case no touch behavior triggered previously we can avoid sending
|
||||||
|
@ -2396,13 +2391,7 @@ bool AsyncPanZoomController::AttemptScroll(ParentLayerPoint& aStartPoint,
|
||||||
|
|
||||||
if (!IsZero(adjustedDisplacement)) {
|
if (!IsZero(adjustedDisplacement)) {
|
||||||
ScrollBy(adjustedDisplacement / mFrameMetrics.GetZoom());
|
ScrollBy(adjustedDisplacement / mFrameMetrics.GetZoom());
|
||||||
if (CancelableBlockState* block = CurrentInputBlock()) {
|
if (InputBlockState* block = CurrentInputBlock()) {
|
||||||
if (block->AsTouchBlock() && (block->GetScrolledApzc() != this)) {
|
|
||||||
RefPtr<GeckoContentController> controller = GetGeckoContentController();
|
|
||||||
if (controller) {
|
|
||||||
controller->SetScrollingRootContent(IsRootContent());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
block->SetScrolledApzc(this);
|
block->SetScrolledApzc(this);
|
||||||
}
|
}
|
||||||
ScheduleCompositeAndMaybeRepaint();
|
ScheduleCompositeAndMaybeRepaint();
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
package org.mozilla.gecko.gfx;
|
package org.mozilla.gecko.gfx;
|
||||||
|
|
||||||
import org.mozilla.gecko.AppConstants;
|
|
||||||
import org.mozilla.gecko.PrefsHelper;
|
import org.mozilla.gecko.PrefsHelper;
|
||||||
import org.mozilla.gecko.util.FloatUtils;
|
import org.mozilla.gecko.util.FloatUtils;
|
||||||
import org.mozilla.gecko.util.ThreadUtils;
|
import org.mozilla.gecko.util.ThreadUtils;
|
||||||
|
@ -95,9 +94,6 @@ public class DynamicToolbarAnimator {
|
||||||
private PointF mTouchStart;
|
private PointF mTouchStart;
|
||||||
private float mLastTouch;
|
private float mLastTouch;
|
||||||
|
|
||||||
/* Set to true when root content is being scrolled */
|
|
||||||
private boolean mScrollingRootContent;
|
|
||||||
|
|
||||||
public DynamicToolbarAnimator(GeckoLayerClient aTarget) {
|
public DynamicToolbarAnimator(GeckoLayerClient aTarget) {
|
||||||
mTarget = aTarget;
|
mTarget = aTarget;
|
||||||
mListeners = new ArrayList<LayerView.DynamicToolbarListener>();
|
mListeners = new ArrayList<LayerView.DynamicToolbarListener>();
|
||||||
|
@ -112,11 +108,6 @@ public class DynamicToolbarAnimator {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
PrefsHelper.addObserver(new String[] { PREF_SCROLL_TOOLBAR_THRESHOLD }, mPrefObserver);
|
PrefsHelper.addObserver(new String[] { PREF_SCROLL_TOOLBAR_THRESHOLD }, mPrefObserver);
|
||||||
|
|
||||||
// JPZ doesn't notify when scrolling root content. This maintains existing behaviour.
|
|
||||||
if (!AppConstants.MOZ_ANDROID_APZ) {
|
|
||||||
mScrollingRootContent = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
|
@ -194,10 +185,6 @@ public class DynamicToolbarAnimator {
|
||||||
animateToolbar(false, immediately);
|
animateToolbar(false, immediately);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setScrollingRootContent(boolean isRootContent) {
|
|
||||||
mScrollingRootContent = isRootContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void animateToolbar(final boolean showToolbar, boolean immediately) {
|
private void animateToolbar(final boolean showToolbar, boolean immediately) {
|
||||||
ThreadUtils.assertOnUiThread();
|
ThreadUtils.assertOnUiThread();
|
||||||
|
|
||||||
|
@ -352,12 +339,11 @@ public class DynamicToolbarAnimator {
|
||||||
// translation to take effect right away. Or if the user has moved
|
// translation to take effect right away. Or if the user has moved
|
||||||
// their finger past the required threshold (and is not trying to
|
// their finger past the required threshold (and is not trying to
|
||||||
// scroll past the bottom of the page) then also we want the touch
|
// scroll past the bottom of the page) then also we want the touch
|
||||||
// to cause translation. If the toolbar is fully visible, we only
|
// to cause translation.
|
||||||
// want the toolbar to hide if the user is scrolling the root content.
|
|
||||||
boolean inBetween = (mToolbarTranslation != 0 && mToolbarTranslation != mMaxTranslation);
|
boolean inBetween = (mToolbarTranslation != 0 && mToolbarTranslation != mMaxTranslation);
|
||||||
boolean reachedThreshold = -aTouchTravelDistance >= exposeThreshold;
|
boolean reachedThreshold = -aTouchTravelDistance >= exposeThreshold;
|
||||||
boolean atBottomOfPage = aMetrics.viewportRectBottom() >= aMetrics.pageRectBottom;
|
boolean atBottomOfPage = aMetrics.viewportRectBottom() >= aMetrics.pageRectBottom;
|
||||||
if (inBetween || (mScrollingRootContent && reachedThreshold && !atBottomOfPage)) {
|
if (inBetween || (reachedThreshold && !atBottomOfPage)) {
|
||||||
return translation;
|
return translation;
|
||||||
}
|
}
|
||||||
} else { // finger moving downwards
|
} else { // finger moving downwards
|
||||||
|
|
|
@ -1086,11 +1086,6 @@ class GeckoLayerClient implements LayerView.Listener, PanZoomTarget
|
||||||
return layerPoint;
|
return layerPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollingRootContent(boolean isRootContent) {
|
|
||||||
mToolbarAnimator.setScrollingRootContent(isRootContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addDrawListener(DrawListener listener) {
|
public void addDrawListener(DrawListener listener) {
|
||||||
mDrawListeners.add(listener);
|
mDrawListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,11 +324,6 @@ class NativePanZoomController extends JNIObject implements PanZoomController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@WrapForJNI
|
|
||||||
private void setScrollingRootContent(final boolean isRootContent) {
|
|
||||||
mTarget.setScrollingRootContent(isRootContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Active SelectionCaretDrag requires DynamicToolbarAnimator to be pinned
|
* Active SelectionCaretDrag requires DynamicToolbarAnimator to be pinned
|
||||||
* to avoid unwanted scroll interactions.
|
* to avoid unwanted scroll interactions.
|
||||||
|
|
|
@ -28,5 +28,4 @@ public interface PanZoomTarget {
|
||||||
public void removeRenderTask(RenderTask task);
|
public void removeRenderTask(RenderTask task);
|
||||||
public Object getLock();
|
public Object getLock();
|
||||||
public PointF convertViewPointToLayerPoint(PointF viewPoint);
|
public PointF convertViewPointToLayerPoint(PointF viewPoint);
|
||||||
public void setScrollingRootContent(boolean isRootContent);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,14 +107,6 @@ AndroidContentController::UpdateOverscrollOffset(const float aX, const float aY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
AndroidContentController::SetScrollingRootContent(const bool isRootContent)
|
|
||||||
{
|
|
||||||
if (mAndroidWindow) {
|
|
||||||
mAndroidWindow->SetScrollingRootContent(isRootContent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AndroidContentController::NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
AndroidContentController::NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
||||||
APZStateChange aChange,
|
APZStateChange aChange,
|
||||||
|
|
|
@ -40,7 +40,6 @@ public:
|
||||||
void PostDelayedTask(Task* aTask, int aDelayMs) override;
|
void PostDelayedTask(Task* aTask, int aDelayMs) override;
|
||||||
void UpdateOverscrollVelocity(const float aX, const float aY) override;
|
void UpdateOverscrollVelocity(const float aX, const float aY) override;
|
||||||
void UpdateOverscrollOffset(const float aX,const float aY) override;
|
void UpdateOverscrollOffset(const float aX,const float aY) override;
|
||||||
void SetScrollingRootContent(const bool isRootContent) override;
|
|
||||||
void NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
void NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
||||||
APZStateChange aChange,
|
APZStateChange aChange,
|
||||||
int aArg) override;
|
int aArg) override;
|
||||||
|
|
|
@ -1575,14 +1575,6 @@ auto NativePanZoomController::RequestContentRepaintWrapper(float a0, float a1, f
|
||||||
return mozilla::jni::Method<RequestContentRepaintWrapper_t>::Call(NativePanZoomController::mCtx, nullptr, a0, a1, a2, a3, a4);
|
return mozilla::jni::Method<RequestContentRepaintWrapper_t>::Call(NativePanZoomController::mCtx, nullptr, a0, a1, a2, a3, a4);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr char NativePanZoomController::SetScrollingRootContent_t::name[];
|
|
||||||
constexpr char NativePanZoomController::SetScrollingRootContent_t::signature[];
|
|
||||||
|
|
||||||
auto NativePanZoomController::SetScrollingRootContent(bool a0) const -> void
|
|
||||||
{
|
|
||||||
return mozilla::jni::Method<SetScrollingRootContent_t>::Call(NativePanZoomController::mCtx, nullptr, a0);
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr char NativePanZoomController::UpdateOverscrollOffset_t::name[];
|
constexpr char NativePanZoomController::UpdateOverscrollOffset_t::name[];
|
||||||
constexpr char NativePanZoomController::UpdateOverscrollOffset_t::signature[];
|
constexpr char NativePanZoomController::UpdateOverscrollOffset_t::signature[];
|
||||||
|
|
||||||
|
|
|
@ -3781,22 +3781,6 @@ public:
|
||||||
|
|
||||||
auto RequestContentRepaintWrapper(float, float, float, float, float) const -> void;
|
auto RequestContentRepaintWrapper(float, float, float, float, float) const -> void;
|
||||||
|
|
||||||
struct SetScrollingRootContent_t {
|
|
||||||
typedef NativePanZoomController Owner;
|
|
||||||
typedef void ReturnType;
|
|
||||||
typedef void SetterType;
|
|
||||||
typedef mozilla::jni::Args<
|
|
||||||
bool> Args;
|
|
||||||
static constexpr char name[] = "setScrollingRootContent";
|
|
||||||
static constexpr char signature[] =
|
|
||||||
"(Z)V";
|
|
||||||
static const bool isStatic = false;
|
|
||||||
static const mozilla::jni::ExceptionMode exceptionMode =
|
|
||||||
mozilla::jni::ExceptionMode::ABORT;
|
|
||||||
};
|
|
||||||
|
|
||||||
auto SetScrollingRootContent(bool) const -> void;
|
|
||||||
|
|
||||||
struct UpdateOverscrollOffset_t {
|
struct UpdateOverscrollOffset_t {
|
||||||
typedef NativePanZoomController Owner;
|
typedef NativePanZoomController Owner;
|
||||||
typedef void ReturnType;
|
typedef void ReturnType;
|
||||||
|
|
|
@ -817,11 +817,6 @@ public:
|
||||||
mNPZC->UpdateOverscrollOffset(x, y);
|
mNPZC->UpdateOverscrollOffset(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetScrollingRootContent(const bool isRootContent)
|
|
||||||
{
|
|
||||||
mNPZC->SetScrollingRootContent(isRootContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetSelectionDragState(const bool aState)
|
void SetSelectionDragState(const bool aState)
|
||||||
{
|
{
|
||||||
mNPZC->OnSelectionDragState(aState);
|
mNPZC->OnSelectionDragState(aState);
|
||||||
|
@ -1881,17 +1876,6 @@ nsWindow::UpdateOverscrollOffset(const float aX, const float aY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
nsWindow::SetScrollingRootContent(const bool isRootContent)
|
|
||||||
{
|
|
||||||
// On Android, the Controller thread and UI thread are the same.
|
|
||||||
MOZ_ASSERT(APZThreadUtils::IsControllerThread(), "nsWindow::SetScrollingRootContent must be called from the controller thread");
|
|
||||||
|
|
||||||
if (mNPZCSupport) {
|
|
||||||
mNPZCSupport->SetScrollingRootContent(isRootContent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nsWindow::SetSelectionDragState(bool aState)
|
nsWindow::SetSelectionDragState(bool aState)
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,7 +79,6 @@ public:
|
||||||
|
|
||||||
void UpdateOverscrollVelocity(const float aX, const float aY);
|
void UpdateOverscrollVelocity(const float aX, const float aY);
|
||||||
void UpdateOverscrollOffset(const float aX, const float aY);
|
void UpdateOverscrollOffset(const float aX, const float aY);
|
||||||
void SetScrollingRootContent(const bool isRootContent);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// nsIWidget
|
// nsIWidget
|
||||||
|
|
Загрузка…
Ссылка в новой задаче