Index: chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
index a67ab2612805febda6e7962d0695a011bf615dda..4e47411d14e12fad5dae7730e8133f32d9d312de 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java |
@@ -452,10 +452,23 @@ public class ToolbarPhone extends ToolbarLayout |
&& mNtpSearchBoxScrollPercent != UNINITIALIZED_PERCENT) { |
return true; |
} |
+ |
return super.onInterceptTouchEvent(ev); |
} |
@Override |
+ public boolean onTouchEvent(MotionEvent ev) { |
+ // Forward touch events to the NTP if the toolbar is moved away. |
+ if (mNtpSearchBoxTranslation.y < 0) { |
+ NewTabPage newTabPage = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
+ |
+ // No null check -- the toolbar should not be moved if we are not on an NTP. |
+ return newTabPage.getView().dispatchTouchEvent(ev); |
+ } |
+ return super.onTouchEvent(ev); |
+ } |
+ |
+ @Override |
public void onClick(View v) { |
if (mToggleTabStackButton == v) { |
// The button is clickable before the native library is loaded |
@@ -876,6 +889,7 @@ public class ToolbarPhone extends ToolbarLayout |
*/ |
private void resetNtpAnimationValues() { |
mLocationBarBackgroundNtpOffset.setEmpty(); |
+ mNtpSearchBoxTranslation.set(0, 0); |
mLocationBar.setTranslationY(0); |
if (!mUrlFocusChangeInProgress) { |
mToolbarButtonsContainer.setTranslationY(0); |
@@ -2076,6 +2090,8 @@ public class ToolbarPhone extends ToolbarLayout |
if (!visualStateChanged) { |
if (mVisualState == VisualState.NEW_TAB_NORMAL) { |
updateNtpTransitionAnimation(); |
+ } else { |
+ resetNtpAnimationValues(); |
} |
return; |
} |