Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java |
index da07d0f642fe6fd69b78d10fe53d83e8e9c3ab23..6fa509282faa75ce1b629ab3413a342a9ca52aaa 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java |
@@ -463,6 +463,9 @@ public abstract class Layout implements TabContentManager.ThumbnailChangeListene |
mUpdateHost.startHiding(nextTabId, hintAtTabSelection); |
mIsHiding = true; |
mNextTabId = nextTabId; |
+ for (int i = 0; i < mSceneOverlays.size(); i++) { |
+ mSceneOverlays.get(i).onHideLayout(); |
+ } |
} |
/** |
@@ -738,6 +741,10 @@ public abstract class Layout implements TabContentManager.ThumbnailChangeListene |
* @return Whether or not the layout consumed the event. |
*/ |
public boolean onBackPressed() { |
+ for (int i = 0; i < mSceneOverlays.size(); i++) { |
+ // If the back button was consumed by any overlays, return true. |
+ if (mSceneOverlays.get(i).onBackPressed()) return true; |
+ } |
return false; |
} |
@@ -1070,6 +1077,15 @@ public abstract class Layout implements TabContentManager.ThumbnailChangeListene |
* @return Whether the layout is handling the model updates when a tab is creating. |
*/ |
public boolean handlesTabCreating() { |
+ if (mLayoutTabs == null || mLayoutTabs.length != 1) return false; |
+ for (int i = 0; i < mSceneOverlays.size(); i++) { |
+ if (mSceneOverlays.get(i).handlesTabCreating()) { |
+ // Prevent animation from happening if the overlay handles creation. |
+ startHiding(mLayoutTabs[0].getId(), false); |
+ doneHiding(); |
+ return true; |
+ } |
+ } |
return false; |
} |