| Index: third_party/mojo_services/src/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| diff --git a/third_party/mojo_services/src/view_manager/public/cpp/lib/view_manager_client_impl.cc b/third_party/mojo_services/src/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| index eea760bbabb18df62f3a9ee47a9bb9fb3e10a631..595e03969427397ee53d0849e2e85fc07bfea9c2 100644
|
| --- a/third_party/mojo_services/src/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| +++ b/third_party/mojo_services/src/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| @@ -105,7 +105,6 @@ ViewManagerClientImpl::ViewManagerClientImpl(ViewManagerDelegate* delegate,
|
| capture_view_(nullptr),
|
| focused_view_(nullptr),
|
| activated_view_(nullptr),
|
| - wm_observer_binding_(this),
|
| binding_(this, handle.Pass()),
|
| service_(binding_.client()),
|
| delete_on_error_(delete_on_error) {
|
| @@ -273,12 +272,10 @@ void ViewManagerClientImpl::OnEmbed(
|
| root_->AddObserver(new RootObserver(root_));
|
|
|
| window_manager_.Bind(window_manager_pipe.Pass());
|
| + window_manager_.set_client(this);
|
| // base::Unretained() is safe here as |window_manager_| is bound to our
|
| // lifetime.
|
| - WindowManagerObserverPtr observer;
|
| - wm_observer_binding_.Bind(GetProxy(&observer));
|
| window_manager_->GetFocusedAndActiveViews(
|
| - observer.Pass(),
|
| base::Bind(&ViewManagerClientImpl::OnGotFocusedAndActiveViews,
|
| base::Unretained(this)));
|
|
|
| @@ -400,11 +397,12 @@ void ViewManagerClientImpl::OnViewInputEvent(
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// ViewManagerClientImpl, WindowManagerObserver implementation:
|
| +// ViewManagerClientImpl, WindowManagerClient implementation:
|
|
|
| -void ViewManagerClientImpl::OnCaptureChanged(Id capture_view_id) {
|
| - View* gained_capture = GetViewById(capture_view_id);
|
| - View* lost_capture = capture_view_;
|
| +void ViewManagerClientImpl::OnCaptureChanged(Id old_capture_view_id,
|
| + Id new_capture_view_id) {
|
| + View* gained_capture = GetViewById(new_capture_view_id);
|
| + View* lost_capture = GetViewById(old_capture_view_id);
|
| if (lost_capture) {
|
| FOR_EACH_OBSERVER(ViewObserver,
|
| *ViewPrivate(lost_capture).observers(),
|
| @@ -418,9 +416,10 @@ void ViewManagerClientImpl::OnCaptureChanged(Id capture_view_id) {
|
| }
|
| }
|
|
|
| -void ViewManagerClientImpl::OnFocusChanged(Id focused_view_id) {
|
| - View* focused = GetViewById(focused_view_id);
|
| - View* blurred = focused_view_;
|
| +void ViewManagerClientImpl::OnFocusChanged(Id old_focused_view_id,
|
| + Id new_focused_view_id) {
|
| + View* focused = GetViewById(new_focused_view_id);
|
| + View* blurred = GetViewById(old_focused_view_id);
|
| if (blurred) {
|
| FOR_EACH_OBSERVER(ViewObserver,
|
| *ViewPrivate(blurred).observers(),
|
| @@ -434,9 +433,10 @@ void ViewManagerClientImpl::OnFocusChanged(Id focused_view_id) {
|
| }
|
| }
|
|
|
| -void ViewManagerClientImpl::OnActiveWindowChanged(Id active_view_id) {
|
| - View* activated = GetViewById(active_view_id);
|
| - View* deactivated = activated_view_;
|
| +void ViewManagerClientImpl::OnActiveWindowChanged(Id old_active_view_id,
|
| + Id new_active_view_id) {
|
| + View* activated = GetViewById(new_active_view_id);
|
| + View* deactivated = GetViewById(old_active_view_id);
|
| if (deactivated) {
|
| FOR_EACH_OBSERVER(ViewObserver,
|
| *ViewPrivate(deactivated).observers(),
|
| @@ -485,16 +485,14 @@ base::Callback<void(ErrorCode)>
|
| base::Unretained(this));
|
| }
|
|
|
| -void ViewManagerClientImpl::OnGotFocusedAndActiveViews(
|
| - uint32_t capture_view_id,
|
| - uint32_t focused_view_id,
|
| - uint32_t active_view_id) {
|
| - if (GetViewById(capture_view_id) != capture_view_)
|
| - OnCaptureChanged(capture_view_id);
|
| +void ViewManagerClientImpl::OnGotFocusedAndActiveViews(uint32 focused_view_id,
|
| + uint32 active_view_id) {
|
| if (GetViewById(focused_view_id) != focused_view_)
|
| - OnFocusChanged(focused_view_id);
|
| - if (GetViewById(active_view_id) != activated_view_)
|
| - OnActiveWindowChanged(active_view_id);
|
| + OnFocusChanged(focused_view_ ? focused_view_->id() : 0, focused_view_id);
|
| + if (GetViewById(active_view_id) != activated_view_) {
|
| + OnActiveWindowChanged(activated_view_ ? activated_view_->id() : 0,
|
| + active_view_id);
|
| + }
|
| }
|
|
|
| } // namespace mojo
|
|
|