Chromium Code Reviews| Index: components/mus/public/cpp/lib/window_tree_client_impl.h |
| diff --git a/components/mus/public/cpp/lib/window_tree_client_impl.h b/components/mus/public/cpp/lib/window_tree_client_impl.h |
| index a63d417ae5db6ea051c5265d4bc279476dfe6c4b..440f5b45163ca06032848cf4bd7c6012ddcc479e 100644 |
| --- a/components/mus/public/cpp/lib/window_tree_client_impl.h |
| +++ b/components/mus/public/cpp/lib/window_tree_client_impl.h |
| @@ -10,7 +10,9 @@ |
| #include <map> |
| #include <set> |
| +#include "base/atomicops.h" |
| #include "base/macros.h" |
| +#include "base/memory/weak_ptr.h" |
| #include "base/observer_list.h" |
| #include "components/mus/common/types.h" |
| #include "components/mus/public/cpp/window.h" |
| @@ -162,11 +164,15 @@ class WindowTreeClientImpl : public WindowTreeConnection, |
| Id focused_window_id, |
| bool drawn); |
| + void OnReceivedCursorLocationMemory(mojo::ScopedSharedBufferHandle handle); |
| + |
| // Overridden from WindowTreeConnection: |
| void SetDeleteOnNoRoots(bool value) override; |
| const std::set<Window*>& GetRoots() override; |
| Window* GetFocusedWindow() override; |
| void ClearFocus() override; |
| + void InitializeCursorLocation() override; |
| + gfx::Point GetCursorScreenPoint() override; |
| Window* NewWindow(const Window::SharedProperties* properties) override; |
| Window* NewTopLevelWindow( |
| const Window::SharedProperties* properties) override; |
| @@ -293,12 +299,24 @@ class WindowTreeClientImpl : public WindowTreeConnection, |
| bool in_destructor_; |
| + bool called_initialize_cursor_location_; |
|
sky
2016/04/27 20:10:28
Add comment.
|
| + |
| + // A handle to shared memory that is one 65 bit integer long. The window |
|
sky
2016/04/27 20:10:28
32?
|
| + // server uses this to let us synchronously read the cursor location. |
| + mojo::ScopedSharedBufferHandle cursor_location_handle_; |
| + |
| + // The one int in |cursor_location_handle_|. When we read from this |
| + // location, we must always read from it atomically. |
| + base::subtle::Atomic32* cursor_location_memory_; |
| + |
| base::ObserverList<WindowTreeConnectionObserver> observers_; |
| std::unique_ptr<mojo::AssociatedBinding<mojom::WindowManager>> |
| window_manager_internal_; |
| mojom::WindowManagerClientAssociatedPtr window_manager_internal_client_; |
| + base::WeakPtrFactory<WindowTreeClientImpl> weak_factory_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(WindowTreeClientImpl); |
| }; |