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

Side by Side Diff: ui/aura/mus/window_tree_host_mus.cc

Issue 2833093002: WIP: simplified display management in ash (Closed)
Patch Set: merge and more fixs Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « ui/aura/mus/window_tree_host_mus.h ('k') | ui/aura/mus/window_tree_host_mus_init_params.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/mus/window_tree_host_mus.h" 5 #include "ui/aura/mus/window_tree_host_mus.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "ui/aura/env.h" 8 #include "ui/aura/env.h"
9 #include "ui/aura/mus/input_method_mus.h" 9 #include "ui/aura/mus/input_method_mus.h"
10 #include "ui/aura/mus/window_port_mus.h" 10 #include "ui/aura/mus/window_port_mus.h"
(...skipping 25 matching lines...) Expand all
36 36
37 } // namespace 37 } // namespace
38 38
39 //////////////////////////////////////////////////////////////////////////////// 39 ////////////////////////////////////////////////////////////////////////////////
40 // WindowTreeHostMus, public: 40 // WindowTreeHostMus, public:
41 41
42 WindowTreeHostMus::WindowTreeHostMus(WindowTreeHostMusInitParams init_params) 42 WindowTreeHostMus::WindowTreeHostMus(WindowTreeHostMusInitParams init_params)
43 : WindowTreeHostPlatform(std::move(init_params.window_port)), 43 : WindowTreeHostPlatform(std::move(init_params.window_port)),
44 display_id_(init_params.display_id), 44 display_id_(init_params.display_id),
45 delegate_(init_params.window_tree_client) { 45 delegate_(init_params.window_tree_client) {
46 gfx::Rect bounds_in_pixels;
47 initial_metrics_ = init_params.viewport_metrics.Clone();
48 initial_display_ = std::move(init_params.display);
49 bounds_in_pixels = initial_metrics_->bounds_in_pixels;
46 window()->SetProperty(kWindowTreeHostMusKey, this); 50 window()->SetProperty(kWindowTreeHostMusKey, this);
47 // TODO(sky): find a cleaner way to set this! Better solution is to likely 51 // TODO(sky): find a cleaner way to set this! Better solution is to likely
48 // have constructor take aura::Window. 52 // have constructor take aura::Window.
49 WindowPortMus* window_mus = WindowPortMus::Get(window()); 53 WindowPortMus* window_mus = WindowPortMus::Get(window());
50 window_mus->window_ = window(); 54 window_mus->window_ = window();
51 // Apply the properties before initializing the window, that way the server 55 // Apply the properties before initializing the window, that way the server
52 // seems them at the time the window is created. 56 // seems them at the time the window is created.
53 for (auto& pair : init_params.properties) 57 for (auto& pair : init_params.properties)
54 window_mus->SetPropertyFromServer(pair.first, &pair.second); 58 window_mus->SetPropertyFromServer(pair.first, &pair.second);
55 // TODO(fsamuel): Once the display compositor is decoupled from the browser 59 // TODO(fsamuel): Once the display compositor is decoupled from the browser
(...skipping 14 matching lines...) Expand all
70 static_cast<gfx::AcceleratedWidget>(accelerated_widget_count++); 74 static_cast<gfx::AcceleratedWidget>(accelerated_widget_count++);
71 #endif 75 #endif
72 } 76 }
73 OnAcceleratedWidgetAvailable(accelerated_widget, 77 OnAcceleratedWidgetAvailable(accelerated_widget,
74 GetDisplay().device_scale_factor()); 78 GetDisplay().device_scale_factor());
75 79
76 delegate_->OnWindowTreeHostCreated(this); 80 delegate_->OnWindowTreeHostCreated(this);
77 81
78 // Do not advertise accelerated widget; already set manually. 82 // Do not advertise accelerated widget; already set manually.
79 const bool use_default_accelerated_widget = false; 83 const bool use_default_accelerated_widget = false;
80 SetPlatformWindow( 84 SetPlatformWindow(base::MakeUnique<ui::StubWindow>(
81 base::MakeUnique<ui::StubWindow>(this, use_default_accelerated_widget)); 85 this, use_default_accelerated_widget, bounds_in_pixels));
82 86
83 input_method_ = base::MakeUnique<InputMethodMus>(this, window()); 87 input_method_ = base::MakeUnique<InputMethodMus>(this, window());
84 input_method_->Init(init_params.window_tree_client->connector()); 88 input_method_->Init(init_params.window_tree_client->connector());
85 SetSharedInputMethod(input_method_.get()); 89 SetSharedInputMethod(input_method_.get());
86 90
87 compositor()->SetHostHasTransparentBackground(true); 91 compositor()->SetHostHasTransparentBackground(true);
88 92
89 // Mus windows are assumed hidden. 93 // Mus windows are assumed hidden.
90 compositor()->SetVisible(false); 94 compositor()->SetVisible(false);
91 95
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 void WindowTreeHostMus::CancelWindowMove() { 161 void WindowTreeHostMus::CancelWindowMove() {
158 delegate_->OnWindowTreeHostCancelWindowMove(this); 162 delegate_->OnWindowTreeHostCancelWindowMove(this);
159 } 163 }
160 164
161 display::Display WindowTreeHostMus::GetDisplay() const { 165 display::Display WindowTreeHostMus::GetDisplay() const {
162 display::Display display; 166 display::Display display;
163 display::Screen::GetScreen()->GetDisplayWithDisplayId(display_id_, &display); 167 display::Screen::GetScreen()->GetDisplayWithDisplayId(display_id_, &display);
164 return display; 168 return display;
165 } 169 }
166 170
171 ui::mojom::WmViewportMetricsPtr WindowTreeHostMus::ReleaseInitialMetrics() {
172 return std::move(initial_metrics_);
173 }
174
175 std::unique_ptr<display::Display> WindowTreeHostMus::ReleaseInitialDisplay() {
176 return std::move(initial_display_);
177 }
178
167 void WindowTreeHostMus::HideImpl() { 179 void WindowTreeHostMus::HideImpl() {
168 WindowTreeHostPlatform::HideImpl(); 180 WindowTreeHostPlatform::HideImpl();
169 window()->Hide(); 181 window()->Hide();
170 } 182 }
171 183
172 void WindowTreeHostMus::SetBoundsInPixels(const gfx::Rect& bounds) { 184 void WindowTreeHostMus::SetBoundsInPixels(const gfx::Rect& bounds) {
173 if (!in_set_bounds_from_server_) 185 if (!in_set_bounds_from_server_)
174 delegate_->OnWindowTreeHostBoundsWillChange(this, bounds); 186 delegate_->OnWindowTreeHostBoundsWillChange(this, bounds);
175 WindowTreeHostPlatform::SetBoundsInPixels(bounds); 187 WindowTreeHostPlatform::SetBoundsInPixels(bounds);
176 } 188 }
(...skipping 26 matching lines...) Expand all
203 void WindowTreeHostMus::MoveCursorToScreenLocationInPixels( 215 void WindowTreeHostMus::MoveCursorToScreenLocationInPixels(
204 const gfx::Point& location_in_pixels) { 216 const gfx::Point& location_in_pixels) {
205 // TODO: this needs to message the server http://crbug.com/693340. Setting 217 // TODO: this needs to message the server http://crbug.com/693340. Setting
206 // the location is really only appropriate in tests, outside of tests this 218 // the location is really only appropriate in tests, outside of tests this
207 // value is ignored. 219 // value is ignored.
208 NOTIMPLEMENTED(); 220 NOTIMPLEMENTED();
209 Env::GetInstance()->set_last_mouse_location(location_in_pixels); 221 Env::GetInstance()->set_last_mouse_location(location_in_pixels);
210 } 222 }
211 223
212 } // namespace aura 224 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/mus/window_tree_host_mus.h ('k') | ui/aura/mus/window_tree_host_mus_init_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698