зеркало из 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
|
@ -144,8 +144,7 @@ public:
|
|||
virtual void NotifyFlushComplete() = 0;
|
||||
|
||||
virtual void UpdateOverscrollVelocity(const float aX, const float aY) {}
|
||||
virtual void UpdateOverscrollOffset(const float aX, const float aY) {}
|
||||
virtual void SetScrollingRootContent(const bool isRootContent) {}
|
||||
virtual void UpdateOverscrollOffset(const float aX,const float aY) {}
|
||||
|
||||
GeckoContentController() {}
|
||||
virtual void ChildAdopted() {}
|
||||
|
|
|
@ -1326,11 +1326,6 @@ nsEventStatus AsyncPanZoomController::OnTouchMove(const MultiTouchInput& aEvent)
|
|||
nsEventStatus AsyncPanZoomController::OnTouchEnd(const MultiTouchInput& aEvent) {
|
||||
APZC_LOG("%p got a touch-end in state %d\n", this, mState);
|
||||
|
||||
RefPtr<GeckoContentController> controller = GetGeckoContentController();
|
||||
if (controller) {
|
||||
controller->SetScrollingRootContent(false);
|
||||
}
|
||||
|
||||
OnTouchEndOrCancel();
|
||||
|
||||
// In case no touch behavior triggered previously we can avoid sending
|
||||
|
@ -2396,13 +2391,7 @@ bool AsyncPanZoomController::AttemptScroll(ParentLayerPoint& aStartPoint,
|
|||
|
||||
if (!IsZero(adjustedDisplacement)) {
|
||||
ScrollBy(adjustedDisplacement / mFrameMetrics.GetZoom());
|
||||
if (CancelableBlockState* block = CurrentInputBlock()) {
|
||||
if (block->AsTouchBlock() && (block->GetScrolledApzc() != this)) {
|
||||
RefPtr<GeckoContentController> controller = GetGeckoContentController();
|
||||
if (controller) {
|
||||
controller->SetScrollingRootContent(IsRootContent());
|
||||
}
|
||||
}
|
||||
if (InputBlockState* block = CurrentInputBlock()) {
|
||||
block->SetScrolledApzc(this);
|
||||
}
|
||||
ScheduleCompositeAndMaybeRepaint();
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
package org.mozilla.gecko.gfx;
|
||||
|
||||
import org.mozilla.gecko.AppConstants;
|
||||
import org.mozilla.gecko.PrefsHelper;
|
||||
import org.mozilla.gecko.util.FloatUtils;
|
||||
import org.mozilla.gecko.util.ThreadUtils;
|
||||
|
@ -95,9 +94,6 @@ public class DynamicToolbarAnimator {
|
|||
private PointF mTouchStart;
|
||||
private float mLastTouch;
|
||||
|
||||
/* Set to true when root content is being scrolled */
|
||||
private boolean mScrollingRootContent;
|
||||
|
||||
public DynamicToolbarAnimator(GeckoLayerClient aTarget) {
|
||||
mTarget = aTarget;
|
||||
mListeners = new ArrayList<LayerView.DynamicToolbarListener>();
|
||||
|
@ -112,11 +108,6 @@ public class DynamicToolbarAnimator {
|
|||
}
|
||||
};
|
||||
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() {
|
||||
|
@ -194,10 +185,6 @@ public class DynamicToolbarAnimator {
|
|||
animateToolbar(false, immediately);
|
||||
}
|
||||
|
||||
public void setScrollingRootContent(boolean isRootContent) {
|
||||
mScrollingRootContent = isRootContent;
|
||||
}
|
||||
|
||||
private void animateToolbar(final boolean showToolbar, boolean immediately) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
|
@ -352,12 +339,11 @@ public class DynamicToolbarAnimator {
|
|||
// translation to take effect right away. Or if the user has moved
|
||||
// their finger past the required threshold (and is not trying to
|
||||
// scroll past the bottom of the page) then also we want the touch
|
||||
// to cause translation. If the toolbar is fully visible, we only
|
||||
// want the toolbar to hide if the user is scrolling the root content.
|
||||
// to cause translation.
|
||||
boolean inBetween = (mToolbarTranslation != 0 && mToolbarTranslation != mMaxTranslation);
|
||||
boolean reachedThreshold = -aTouchTravelDistance >= exposeThreshold;
|
||||
boolean atBottomOfPage = aMetrics.viewportRectBottom() >= aMetrics.pageRectBottom;
|
||||
if (inBetween || (mScrollingRootContent && reachedThreshold && !atBottomOfPage)) {
|
||||
if (inBetween || (reachedThreshold && !atBottomOfPage)) {
|
||||
return translation;
|
||||
}
|
||||
} else { // finger moving downwards
|
||||
|
|
|
@ -1086,11 +1086,6 @@ class GeckoLayerClient implements LayerView.Listener, PanZoomTarget
|
|||
return layerPoint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollingRootContent(boolean isRootContent) {
|
||||
mToolbarAnimator.setScrollingRootContent(isRootContent);
|
||||
}
|
||||
|
||||
public void addDrawListener(DrawListener 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
|
||||
* to avoid unwanted scroll interactions.
|
||||
|
|
|
@ -28,5 +28,4 @@ public interface PanZoomTarget {
|
|||
public void removeRenderTask(RenderTask task);
|
||||
public Object getLock();
|
||||
public PointF convertViewPointToLayerPoint(PointF viewPoint);
|
||||
public void setScrollingRootContent(boolean isRootContent);
|
||||
}
|
||||
|
|
|
@ -100,21 +100,13 @@ AndroidContentController::UpdateOverscrollVelocity(const float aX, const float a
|
|||
}
|
||||
|
||||
void
|
||||
AndroidContentController::UpdateOverscrollOffset(const float aX, const float aY)
|
||||
AndroidContentController::UpdateOverscrollOffset(const float aX,const float aY)
|
||||
{
|
||||
if (mAndroidWindow) {
|
||||
mAndroidWindow->UpdateOverscrollOffset(aX, aY);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AndroidContentController::SetScrollingRootContent(const bool isRootContent)
|
||||
{
|
||||
if (mAndroidWindow) {
|
||||
mAndroidWindow->SetScrollingRootContent(isRootContent);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
AndroidContentController::NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
||||
APZStateChange aChange,
|
||||
|
|
|
@ -39,8 +39,7 @@ public:
|
|||
const ScrollableLayerGuid& aGuid) override;
|
||||
void PostDelayedTask(Task* aTask, int aDelayMs) override;
|
||||
void UpdateOverscrollVelocity(const float aX, const float aY) override;
|
||||
void UpdateOverscrollOffset(const float aX, const float aY) override;
|
||||
void SetScrollingRootContent(const bool isRootContent) override;
|
||||
void UpdateOverscrollOffset(const float aX,const float aY) override;
|
||||
void NotifyAPZStateChange(const ScrollableLayerGuid& aGuid,
|
||||
APZStateChange aChange,
|
||||
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);
|
||||
}
|
||||
|
||||
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::signature[];
|
||||
|
||||
|
|
|
@ -3781,22 +3781,6 @@ public:
|
|||
|
||||
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 {
|
||||
typedef NativePanZoomController Owner;
|
||||
typedef void ReturnType;
|
||||
|
|
|
@ -817,11 +817,6 @@ public:
|
|||
mNPZC->UpdateOverscrollOffset(x, y);
|
||||
}
|
||||
|
||||
void SetScrollingRootContent(const bool isRootContent)
|
||||
{
|
||||
mNPZC->SetScrollingRootContent(isRootContent);
|
||||
}
|
||||
|
||||
void SetSelectionDragState(const bool 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
|
||||
nsWindow::SetSelectionDragState(bool aState)
|
||||
{
|
||||
|
|
|
@ -79,7 +79,6 @@ public:
|
|||
|
||||
void UpdateOverscrollVelocity(const float aX, const float aY);
|
||||
void UpdateOverscrollOffset(const float aX, const float aY);
|
||||
void SetScrollingRootContent(const bool isRootContent);
|
||||
|
||||
//
|
||||
// nsIWidget
|
||||
|
|
Загрузка…
Ссылка в новой задаче