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

Unified Diff: ash/display/mirror_window_controller.cc

Issue 2840043003: chromeos: Makes mushrome use simplified display management (Closed)
Patch Set: merge Created 3 years, 8 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
« no previous file with comments | « ash/aura/shell_port_classic.cc ('k') | ash/display/window_tree_host_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/display/mirror_window_controller.cc
diff --git a/ash/display/mirror_window_controller.cc b/ash/display/mirror_window_controller.cc
index 55670a9f516e227f2ea19d207bdb43631c41dbc6..914eb829b1d1d3b0882fa7a31b3af995a0a6f316 100644
--- a/ash/display/mirror_window_controller.cc
+++ b/ash/display/mirror_window_controller.cc
@@ -173,13 +173,20 @@ void MirrorWindowController::UpdateWindow(
mirroring_host_info_map_.end()) {
AshWindowTreeHostInitParams init_params;
init_params.initial_bounds = display_info.bounds_in_native();
+ init_params.display_id = display_info.id();
+ init_params.device_scale_factor = display_info.device_scale_factor();
+ init_params.ui_scale_factor = display_info.configured_ui_scale();
MirroringHostInfo* host_info = new MirroringHostInfo;
host_info->ash_host = AshWindowTreeHost::Create(init_params);
mirroring_host_info_map_[display_info.id()] = host_info;
aura::WindowTreeHost* host = host_info->ash_host->AsWindowTreeHost();
- host->SetSharedInputMethod(
- Shell::Get()->window_tree_host_manager()->input_method());
+ // TODO: Config::MUS should not install an InputMethod.
+ // http://crbug.com/706913
+ if (!host->has_input_method()) {
+ host->SetSharedInputMethod(
+ Shell::Get()->window_tree_host_manager()->input_method());
+ }
host->window()->SetName(
base::StringPrintf("MirrorRootWindow-%d", mirror_host_count++));
host->compositor()->SetBackgroundColor(SK_ColorBLACK);
@@ -222,13 +229,17 @@ void MirrorWindowController::UpdateWindow(
mirror_window->Show();
if (reflector_) {
reflector_->AddMirroringLayer(mirror_window->layer());
- } else {
+ } else if (aura::Env::GetInstance()->context_factory_private()) {
reflector_ =
aura::Env::GetInstance()
->context_factory_private()
->CreateReflector(
Shell::GetPrimaryRootWindow()->GetHost()->compositor(),
mirror_window->layer());
+ } else {
+ // TODO: Config::MUS needs to support reflector.
+ // http://crbug.com/601869.
+ NOTIMPLEMENTED();
}
} else {
AshWindowTreeHost* ash_host =
@@ -294,7 +305,10 @@ void MirrorWindowController::OnHostResized(const aura::WindowTreeHost* host) {
if (info->mirror_window_host_size == host->GetBoundsInPixels().size())
return;
info->mirror_window_host_size = host->GetBoundsInPixels().size();
- reflector_->OnMirroringCompositorResized();
+ // TODO: |reflector_| should always be non-null here, but isn't in MUS
+ // yet because of http://crbug.com/601869.
+ if (reflector_)
+ reflector_->OnMirroringCompositorResized();
// No need to update the transformer as new transformer is already set
// in UpdateWindow.
Shell::Get()
@@ -362,7 +376,10 @@ void MirrorWindowController::CloseAndDeleteHost(MirroringHostInfo* host_info,
host->RemoveObserver(Shell::Get()->window_tree_host_manager());
host->RemoveObserver(this);
host_info->ash_host->PrepareForShutdown();
- reflector_->RemoveMirroringLayer(host_info->mirror_window->layer());
+ // TODO: |reflector_| should always be non-null here, but isn't in MUS yet
+ // because of http://crbug.com/601869.
+ if (reflector_)
+ reflector_->RemoveMirroringLayer(host_info->mirror_window->layer());
// EventProcessor may be accessed after this call if the mirroring window
// was deleted as a result of input event (e.g. shortcut), so don't delete
« no previous file with comments | « ash/aura/shell_port_classic.cc ('k') | ash/display/window_tree_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698