Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Unified Diff: mojo/services/view_manager/root_view_manager.cc

Issue 474883003: Move focus from the view manager to the window manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/view_manager/root_view_manager.cc
diff --git a/mojo/services/view_manager/root_view_manager.cc b/mojo/services/view_manager/root_view_manager.cc
index 2156c447f07618eaad9adc2d00acd35242a57bf7..d44535dc5781089740b266e927fc523df219836a 100644
--- a/mojo/services/view_manager/root_view_manager.cc
+++ b/mojo/services/view_manager/root_view_manager.cc
@@ -12,7 +12,6 @@
#include "mojo/services/view_manager/screen_impl.h"
#include "mojo/services/view_manager/window_tree_host_impl.h"
#include "ui/aura/client/default_capture_client.h"
-#include "ui/aura/client/focus_change_observer.h"
#include "ui/aura/client/focus_client.h"
#include "ui/aura/client/window_tree_client.h"
#include "ui/aura/window.h"
@@ -21,67 +20,21 @@
namespace mojo {
namespace service {
-// TODO(sky): revisit this, we may need a more sophisticated FocusClient
-// implementation.
-class FocusClientImpl : public aura::client::FocusClient,
- public aura::WindowObserver {
+// TODO(sky): Remove once aura is removed from the service.
+class FocusClientImpl : public aura::client::FocusClient {
public:
- FocusClientImpl()
- : focused_window_(NULL),
- observer_manager_(this) {
- }
+ FocusClientImpl() {}
virtual ~FocusClientImpl() {}
private:
// Overridden from aura::client::FocusClient:
- virtual void AddObserver(aura::client::FocusChangeObserver* observer)
- OVERRIDE {
- observers_.AddObserver(observer);
- }
- virtual void RemoveObserver(aura::client::FocusChangeObserver* observer)
- OVERRIDE {
- observers_.RemoveObserver(observer);
- }
- virtual void FocusWindow(aura::Window* window) OVERRIDE {
- if (window && !window->CanFocus())
- return;
- if (window == focused_window_)
- return;
- if (focused_window_)
- observer_manager_.Remove(focused_window_);
- aura::Window* old_focused_window = focused_window_;
- focused_window_ = window;
- if (focused_window_)
- observer_manager_.Add(focused_window_);
-
- FOR_EACH_OBSERVER(aura::client::FocusChangeObserver,
- observers_,
- OnWindowFocused(focused_window_, old_focused_window));
- aura::client::FocusChangeObserver* observer =
- aura::client::GetFocusChangeObserver(old_focused_window);
- if (observer)
- observer->OnWindowFocused(focused_window_, old_focused_window);
- observer = aura::client::GetFocusChangeObserver(focused_window_);
- if (observer)
- observer->OnWindowFocused(focused_window_, old_focused_window);
- }
- virtual void ResetFocusWithinActiveWindow(aura::Window* window) OVERRIDE {
- if (!window->Contains(focused_window_))
- FocusWindow(window);
- }
- virtual aura::Window* GetFocusedWindow() OVERRIDE {
- return focused_window_;
- }
-
- // Overridden from WindowObserver:
- virtual void OnWindowDestroying(aura::Window* window) OVERRIDE {
- DCHECK_EQ(window, focused_window_);
- FocusWindow(NULL);
- }
-
- aura::Window* focused_window_;
- ScopedObserver<aura::Window, aura::WindowObserver> observer_manager_;
- ObserverList<aura::client::FocusChangeObserver> observers_;
+ virtual void AddObserver(
+ aura::client::FocusChangeObserver* observer) OVERRIDE {}
+ virtual void RemoveObserver(
+ aura::client::FocusChangeObserver* observer) OVERRIDE {}
+ virtual void FocusWindow(aura::Window* window) OVERRIDE {}
+ virtual void ResetFocusWithinActiveWindow(aura::Window* window) OVERRIDE {}
+ virtual aura::Window* GetFocusedWindow() OVERRIDE { return NULL; }
DISALLOW_COPY_AND_ASSIGN(FocusClientImpl);
};
@@ -133,7 +86,9 @@ RootViewManager::RootViewManager(
gfx::Rect(800, 600),
base::Bind(&RootViewManager::OnCompositorCreated,
base::Unretained(this)),
- native_viewport_closed_callback));
+ native_viewport_closed_callback,
+ base::Bind(&RootNodeManager::DispatchNodeInputEventToWindowManager,
+ base::Unretained(root_node_manager_))));
}
RootViewManager::~RootViewManager() {
@@ -154,10 +109,9 @@ void RootViewManager::OnCompositorCreated() {
window_tree_client_.reset(
new WindowTreeClientImpl(window_tree_host_->window()));
- focus_client_.reset(new FocusClientImpl());
+ focus_client_.reset(new FocusClientImpl);
aura::client::SetFocusClient(window_tree_host_->window(),
focus_client_.get());
- focus_client_->AddObserver(root_node_manager_);
window_tree_host_->Show();
« no previous file with comments | « mojo/services/view_manager/root_node_manager.cc ('k') | mojo/services/view_manager/view_manager_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698