OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/aura/window_tree_host.h" | 5 #include "ui/aura/window_tree_host.h" |
6 | 6 |
7 #include "base/thread_task_runner_handle.h" | 7 #include "base/thread_task_runner_handle.h" |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
9 #include "ui/aura/client/capture_client.h" | 9 #include "ui/aura/client/capture_client.h" |
10 #include "ui/aura/client/cursor_client.h" | 10 #include "ui/aura/client/cursor_client.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "ui/gfx/geometry/point_conversions.h" | 25 #include "ui/gfx/geometry/point_conversions.h" |
26 #include "ui/gfx/geometry/size_conversions.h" | 26 #include "ui/gfx/geometry/size_conversions.h" |
27 #include "ui/gfx/screen.h" | 27 #include "ui/gfx/screen.h" |
28 | 28 |
29 namespace aura { | 29 namespace aura { |
30 | 30 |
31 const char kWindowTreeHostForAcceleratedWidget[] = | 31 const char kWindowTreeHostForAcceleratedWidget[] = |
32 "__AURA_WINDOW_TREE_HOST_ACCELERATED_WIDGET__"; | 32 "__AURA_WINDOW_TREE_HOST_ACCELERATED_WIDGET__"; |
33 | 33 |
34 float GetDeviceScaleFactorFromDisplay(Window* window) { | 34 float GetDeviceScaleFactorFromDisplay(Window* window) { |
35 gfx::Display display = gfx::Screen::GetScreenFor(window)-> | 35 LOG(ERROR) << "auraclank: GetDeviceScaleFactorFromDisplay"; |
36 GetDisplayNearestWindow(window); | 36 gfx::Screen* screen = gfx::Screen::GetScreenFor(window); |
| 37 LOG(ERROR) << 1; |
| 38 gfx::Display display = screen->GetDisplayNearestWindow(window); |
| 39 LOG(ERROR) << 2; |
37 DCHECK(display.is_valid()); | 40 DCHECK(display.is_valid()); |
| 41 LOG(ERROR) << 3; |
38 return display.device_scale_factor(); | 42 return display.device_scale_factor(); |
39 } | 43 } |
40 | 44 |
41 //////////////////////////////////////////////////////////////////////////////// | 45 //////////////////////////////////////////////////////////////////////////////// |
42 // WindowTreeHost, public: | 46 // WindowTreeHost, public: |
43 | 47 |
44 WindowTreeHost::~WindowTreeHost() { | 48 WindowTreeHost::~WindowTreeHost() { |
45 DCHECK(!compositor_) << "compositor must be destroyed before root window"; | 49 DCHECK(!compositor_) << "compositor must be destroyed before root window"; |
46 if (owned_input_method_) { | 50 if (owned_input_method_) { |
47 delete input_method_; | 51 delete input_method_; |
48 input_method_ = nullptr; | 52 input_method_ = nullptr; |
49 } | 53 } |
50 } | 54 } |
51 | 55 |
52 // static | 56 // static |
53 WindowTreeHost* WindowTreeHost::GetForAcceleratedWidget( | 57 WindowTreeHost* WindowTreeHost::GetForAcceleratedWidget( |
54 gfx::AcceleratedWidget widget) { | 58 gfx::AcceleratedWidget widget) { |
55 return reinterpret_cast<WindowTreeHost*>( | 59 return reinterpret_cast<WindowTreeHost*>( |
56 ui::ViewProp::GetValue(widget, kWindowTreeHostForAcceleratedWidget)); | 60 ui::ViewProp::GetValue(widget, kWindowTreeHostForAcceleratedWidget)); |
57 } | 61 } |
58 | 62 |
59 void WindowTreeHost::InitHost() { | 63 void WindowTreeHost::InitHost() { |
60 InitCompositor(); | 64 InitCompositor(); |
61 UpdateRootWindowSize(GetBounds().size()); | 65 UpdateRootWindowSize(GetBounds().size()); |
62 Env::GetInstance()->NotifyHostInitialized(this); | 66 Env::GetInstance()->NotifyHostInitialized(this); |
63 window()->Show(); | 67 window()->Show(); |
64 } | 68 } |
65 | 69 |
66 void WindowTreeHost::InitCompositor() { | 70 void WindowTreeHost::InitCompositor() { |
67 compositor_->SetScaleAndSize(GetDeviceScaleFactorFromDisplay(window()), | 71 LOG(ERROR) << "auraclank: WindowTreeHost::InitCompositor"; |
| 72 LOG(ERROR) << 1; |
| 73 float sf = GetDeviceScaleFactorFromDisplay(window()); |
| 74 LOG(ERROR) << 2; |
| 75 compositor_->SetScaleAndSize(sf, |
68 GetBounds().size()); | 76 GetBounds().size()); |
| 77 LOG(ERROR) << 3; |
69 compositor_->SetRootLayer(window()->layer()); | 78 compositor_->SetRootLayer(window()->layer()); |
| 79 LOG(ERROR) << 4; |
70 } | 80 } |
71 | 81 |
72 void WindowTreeHost::AddObserver(WindowTreeHostObserver* observer) { | 82 void WindowTreeHost::AddObserver(WindowTreeHostObserver* observer) { |
73 observers_.AddObserver(observer); | 83 observers_.AddObserver(observer); |
74 } | 84 } |
75 | 85 |
76 void WindowTreeHost::RemoveObserver(WindowTreeHostObserver* observer) { | 86 void WindowTreeHost::RemoveObserver(WindowTreeHostObserver* observer) { |
77 observers_.RemoveObserver(observer); | 87 observers_.RemoveObserver(observer); |
78 } | 88 } |
79 | 89 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 OnCursorVisibilityChangedNative(show); | 165 OnCursorVisibilityChangedNative(show); |
156 } | 166 } |
157 | 167 |
158 void WindowTreeHost::MoveCursorTo(const gfx::Point& location_in_dip) { | 168 void WindowTreeHost::MoveCursorTo(const gfx::Point& location_in_dip) { |
159 gfx::Point host_location(location_in_dip); | 169 gfx::Point host_location(location_in_dip); |
160 ConvertPointToHost(&host_location); | 170 ConvertPointToHost(&host_location); |
161 MoveCursorToInternal(location_in_dip, host_location); | 171 MoveCursorToInternal(location_in_dip, host_location); |
162 } | 172 } |
163 | 173 |
164 void WindowTreeHost::MoveCursorToHostLocation(const gfx::Point& host_location) { | 174 void WindowTreeHost::MoveCursorToHostLocation(const gfx::Point& host_location) { |
| 175 LOG(ERROR) << "auraclank: WindowTreeHost::MoveCursorToHostLocation"; |
165 gfx::Point root_location(host_location); | 176 gfx::Point root_location(host_location); |
| 177 LOG(ERROR) << 1; |
166 ConvertPointFromHost(&root_location); | 178 ConvertPointFromHost(&root_location); |
| 179 LOG(ERROR) << 2; |
167 MoveCursorToInternal(root_location, host_location); | 180 MoveCursorToInternal(root_location, host_location); |
| 181 LOG(ERROR) << 3; |
168 } | 182 } |
169 | 183 |
170 ui::InputMethod* WindowTreeHost::GetInputMethod() { | 184 ui::InputMethod* WindowTreeHost::GetInputMethod() { |
171 if (!input_method_) { | 185 if (!input_method_) { |
172 input_method_ = | 186 input_method_ = |
173 ui::CreateInputMethod(this, GetAcceleratedWidget()).release(); | 187 ui::CreateInputMethod(this, GetAcceleratedWidget()).release(); |
174 owned_input_method_ = true; | 188 owned_input_method_ = true; |
175 } | 189 } |
176 return input_method_; | 190 return input_method_; |
177 } | 191 } |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 client::CursorClient* cursor_client = client::GetCursorClient(window()); | 314 client::CursorClient* cursor_client = client::GetCursorClient(window()); |
301 if (cursor_client) { | 315 if (cursor_client) { |
302 const gfx::Display& display = | 316 const gfx::Display& display = |
303 gfx::Screen::GetScreenFor(window())->GetDisplayNearestWindow(window()); | 317 gfx::Screen::GetScreenFor(window())->GetDisplayNearestWindow(window()); |
304 cursor_client->SetDisplay(display); | 318 cursor_client->SetDisplay(display); |
305 } | 319 } |
306 dispatcher()->OnCursorMovedToRootLocation(root_location); | 320 dispatcher()->OnCursorMovedToRootLocation(root_location); |
307 } | 321 } |
308 | 322 |
309 } // namespace aura | 323 } // namespace aura |
OLD | NEW |