From 2a09e33abb58c90fabdf31814dc259d2e65cf40b Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 15 Dec 2014 01:49:51 -0800 Subject: [PATCH] Clean up APZCTM initialization on Android. (bug 1110540 part 3, r=kats) --- widget/android/nsWindow.cpp | 26 +++++++++++++++++--------- widget/android/nsWindow.h | 3 +++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/widget/android/nsWindow.cpp b/widget/android/nsWindow.cpp index 8975475bf98..52b60376f47 100644 --- a/widget/android/nsWindow.cpp +++ b/widget/android/nsWindow.cpp @@ -2496,18 +2496,26 @@ nsWindow::NewCompositorParent(int aSurfaceWidth, int aSurfaceHeight) mozilla::layers::APZCTreeManager* nsWindow::GetAPZCTreeManager() { - if (!sApzcTreeManager) { - CompositorParent* compositor = sCompositorParent; - if (!compositor) { - return nullptr; - } - uint64_t rootLayerTreeId = compositor->RootLayerTreeId(); - CompositorParent::SetControllerForLayerTree(rootLayerTreeId, mozilla::widget::android::APZCCallbackHandler::GetInstance()); - sApzcTreeManager = CompositorParent::GetAPZCTreeManager(rootLayerTreeId); - } return sApzcTreeManager; } +void +nsWindow::ConfigureAPZCTreeManager() +{ + nsBaseWidget::ConfigureAPZCTreeManager(); + if (!sApzcTreeManager) { + sApzcTreeManager = mAPZC; + } +} + +already_AddRefed +nsWindow::CreateRootContentController() +{ + nsRefPtr controller = + widget::android::APZCCallbackHandler::GetInstance(); + return controller.forget(); +} + uint64_t nsWindow::RootLayerTreeId() { diff --git a/widget/android/nsWindow.h b/widget/android/nsWindow.h index 69901e16288..59d72f1a25d 100644 --- a/widget/android/nsWindow.h +++ b/widget/android/nsWindow.h @@ -174,6 +174,9 @@ protected: void PostFlushIMEChanges(); void FlushIMEChanges(); + void ConfigureAPZCTreeManager() MOZ_OVERRIDE; + already_AddRefed CreateRootContentController() MOZ_OVERRIDE; + // Call this function when the users activity is the direct cause of an // event (like a keypress or mouse click). void UserActivity();