| Index: ash/display/window_tree_host_manager.cc
|
| diff --git a/ash/display/window_tree_host_manager.cc b/ash/display/window_tree_host_manager.cc
|
| index 7f11547024ddfca02b103ad16dc651528976d39b..bce98e78e056894aeb9fad3559837a808bcb5f3d 100644
|
| --- a/ash/display/window_tree_host_manager.cc
|
| +++ b/ash/display/window_tree_host_manager.cc
|
| @@ -524,7 +524,9 @@ void WindowTreeHostManager::UpdateMouseLocationAfterDisplayChange() {
|
| // The cursor's native position did not change but its screen position did
|
| // change. This occurs when the scale factor or the rotation of the display
|
| // that the cursor is on changes.
|
| - Shell::Get()->cursor_manager()->SetDisplay(target_display);
|
| + // TODO: conditional should not be necessary. http://crbug.com/631103.
|
| + if (Shell::Get()->cursor_manager())
|
| + Shell::Get()->cursor_manager()->SetDisplay(target_display);
|
|
|
| // Update the cursor's root location. This ends up dispatching a synthetic
|
| // mouse move. The synthetic mouse move updates the composited cursor's
|
| @@ -813,22 +815,29 @@ AshWindowTreeHost* WindowTreeHostManager::AddWindowTreeHostForDisplay(
|
| params_with_bounds.initial_bounds = display_info.bounds_in_native();
|
| params_with_bounds.offscreen =
|
| display.id() == display::DisplayManager::kUnifiedDisplayId;
|
| + params_with_bounds.display_id = display.id();
|
| + params_with_bounds.device_scale_factor = display.device_scale_factor();
|
| + params_with_bounds.ui_scale_factor = display_info.configured_ui_scale();
|
| // The AshWindowTreeHost ends up owned by the RootWindowControllers created
|
| // by this class.
|
| AshWindowTreeHost* ash_host =
|
| AshWindowTreeHost::Create(params_with_bounds).release();
|
| aura::WindowTreeHost* host = ash_host->AsWindowTreeHost();
|
| - if (!input_method_) { // Singleton input method instance for Ash.
|
| - input_method_ = ui::CreateInputMethod(this, host->GetAcceleratedWidget());
|
| - // Makes sure the input method is focused by default when created, because
|
| - // Ash uses singleton InputMethod and it won't call OnFocus/OnBlur when the
|
| - // active window changed.
|
| - input_method_->OnFocus();
|
| - input_method_event_handler_.reset(
|
| - new InputMethodEventHandler(input_method_.get()));
|
| + // TODO: Config::MUS should not install an InputMethod.
|
| + // http://crbug.com/706913
|
| + if (!host->has_input_method()) {
|
| + if (!input_method_) { // Singleton input method instance for Ash.
|
| + input_method_ = ui::CreateInputMethod(this, host->GetAcceleratedWidget());
|
| + // Makes sure the input method is focused by default when created, because
|
| + // Ash uses singleton InputMethod and it won't call OnFocus/OnBlur when
|
| + // the active window changed.
|
| + input_method_->OnFocus();
|
| + input_method_event_handler_.reset(
|
| + new InputMethodEventHandler(input_method_.get()));
|
| + }
|
| + host->SetSharedInputMethod(input_method_.get());
|
| + ash_host->set_input_method_handler(input_method_event_handler_.get());
|
| }
|
| - host->SetSharedInputMethod(input_method_.get());
|
| - ash_host->set_input_method_handler(input_method_event_handler_.get());
|
|
|
| host->window()->SetName(base::StringPrintf(
|
| "%sRootWindow-%d", params_with_bounds.offscreen ? "Offscreen" : "",
|
|
|