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

Side by Side Diff: ash/display/virtual_keyboard_window_controller.cc

Issue 201573015: Introdcue AshWindowTreeHost and move ash/chrome specific code in WTH to ash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/display/root_window_transformers_unittest.cc ('k') | ash/host/DEPS » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "ash/display/virtual_keyboard_window_controller.h" 5 #include "ash/display/virtual_keyboard_window_controller.h"
6 6
7 #include "ash/display/display_controller.h" 7 #include "ash/display/display_controller.h"
8 #include "ash/display/display_info.h" 8 #include "ash/display/display_info.h"
9 #include "ash/display/display_manager.h" 9 #include "ash/display/display_manager.h"
10 #include "ash/display/root_window_transformers.h" 10 #include "ash/display/root_window_transformers.h"
11 #include "ash/host/window_tree_host_factory.h" 11 #include "ash/host/ash_window_tree_host.h"
12 #include "ash/host/root_window_transformer.h"
12 #include "ash/root_window_controller.h" 13 #include "ash/root_window_controller.h"
13 #include "ash/root_window_settings.h" 14 #include "ash/root_window_settings.h"
14 #include "ash/shell.h" 15 #include "ash/shell.h"
15 #include "ash/shell_window_ids.h" 16 #include "ash/shell_window_ids.h"
16 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
17 #include "base/strings/utf_string_conversions.h" 18 #include "base/strings/utf_string_conversions.h"
18 #include "ui/aura/env.h" 19 #include "ui/aura/env.h"
19 #include "ui/aura/root_window_transformer.h"
20 #include "ui/aura/window_event_dispatcher.h" 20 #include "ui/aura/window_event_dispatcher.h"
21 #include "ui/keyboard/keyboard_controller.h" 21 #include "ui/keyboard/keyboard_controller.h"
22 #include "ui/keyboard/keyboard_util.h" 22 #include "ui/keyboard/keyboard_util.h"
23 23
24 namespace ash { 24 namespace ash {
25 25
26 VirtualKeyboardWindowController::VirtualKeyboardWindowController() { 26 VirtualKeyboardWindowController::VirtualKeyboardWindowController() {
27 Shell::GetInstance()->AddShellObserver(this); 27 Shell::GetInstance()->AddShellObserver(this);
28 } 28 }
29 29
30 VirtualKeyboardWindowController::~VirtualKeyboardWindowController() { 30 VirtualKeyboardWindowController::~VirtualKeyboardWindowController() {
31 Shell::GetInstance()->RemoveShellObserver(this); 31 Shell::GetInstance()->RemoveShellObserver(this);
32 // Make sure the root window gets deleted before cursor_window_delegate. 32 // Make sure the root window gets deleted before cursor_window_delegate.
33 Close(); 33 Close();
34 } 34 }
35 35
36 void VirtualKeyboardWindowController::ActivateKeyboard( 36 void VirtualKeyboardWindowController::ActivateKeyboard(
37 keyboard::KeyboardController* keyboard_controller) { 37 keyboard::KeyboardController* keyboard_controller) {
38 root_window_controller_->ActivateKeyboard(keyboard_controller); 38 root_window_controller_->ActivateKeyboard(keyboard_controller);
39 } 39 }
40 40
41 void VirtualKeyboardWindowController::UpdateWindow( 41 void VirtualKeyboardWindowController::UpdateWindow(
42 const DisplayInfo& display_info) { 42 const DisplayInfo& display_info) {
43 static int virtual_keyboard_host_count = 0; 43 static int virtual_keyboard_host_count = 0;
44 if (!root_window_controller_.get()) { 44 if (!root_window_controller_.get()) {
45 const gfx::Rect& bounds_in_native = display_info.bounds_in_native(); 45 const gfx::Rect& bounds_in_native = display_info.bounds_in_native();
46 aura::WindowTreeHost* host = 46 AshWindowTreeHost* ash_host = AshWindowTreeHost::Create(bounds_in_native);
47 Shell::GetInstance()->window_tree_host_factory()->CreateWindowTreeHost( 47 aura::WindowTreeHost* host = ash_host->AsWindowTreeHost();
48 bounds_in_native); 48
49 host->window()->SetName( 49 host->window()->SetName(base::StringPrintf("VirtualKeyboardRootWindow-%d",
50 base::StringPrintf("VirtualKeyboardRootWindow-%d", 50 virtual_keyboard_host_count++));
51 virtual_keyboard_host_count++));
52 51
53 // No need to remove WindowTreeHostObserver because the DisplayController 52 // No need to remove WindowTreeHostObserver because the DisplayController
54 // outlives the host. 53 // outlives the host.
55 host->AddObserver(Shell::GetInstance()->display_controller()); 54 host->AddObserver(Shell::GetInstance()->display_controller());
56 InitRootWindowSettings(host->window())->display_id = display_info.id(); 55 InitRootWindowSettings(host->window())->display_id = display_info.id();
57 host->InitHost(); 56 host->InitHost();
58 RootWindowController::CreateForVirtualKeyboardDisplay(host); 57 RootWindowController::CreateForVirtualKeyboardDisplay(ash_host);
59 root_window_controller_.reset(GetRootWindowController(host->window())); 58 root_window_controller_.reset(GetRootWindowController(host->window()));
60 root_window_controller_->host()->Show(); 59 root_window_controller_->GetHost()->Show();
61 root_window_controller_->ActivateKeyboard( 60 root_window_controller_->ActivateKeyboard(
62 keyboard::KeyboardController::GetInstance()); 61 keyboard::KeyboardController::GetInstance());
63 FlipDisplay(); 62 FlipDisplay();
64 } else { 63 } else {
65 aura::WindowTreeHost* host = root_window_controller_->host(); 64 aura::WindowTreeHost* host = root_window_controller_->GetHost();
66 GetRootWindowSettings(host->window())->display_id = display_info.id(); 65 GetRootWindowSettings(host->window())->display_id = display_info.id();
67 host->SetBounds(display_info.bounds_in_native()); 66 host->SetBounds(display_info.bounds_in_native());
68 } 67 }
69 } 68 }
70 69
71 void VirtualKeyboardWindowController::Close() { 70 void VirtualKeyboardWindowController::Close() {
72 if (root_window_controller_.get()) { 71 if (root_window_controller_.get()) {
73 root_window_controller_->host()->RemoveObserver( 72 root_window_controller_->GetHost()->RemoveObserver(
74 Shell::GetInstance()->display_controller()); 73 Shell::GetInstance()->display_controller());
75 root_window_controller_->Shutdown(); 74 root_window_controller_->Shutdown();
76 root_window_controller_.reset(); 75 root_window_controller_.reset();
77 } 76 }
78 } 77 }
79 78
80 void VirtualKeyboardWindowController::FlipDisplay() { 79 void VirtualKeyboardWindowController::FlipDisplay() {
81 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); 80 DisplayManager* display_manager = Shell::GetInstance()->display_manager();
82 if (!display_manager->virtual_keyboard_root_window_enabled()) { 81 if (!display_manager->virtual_keyboard_root_window_enabled()) {
83 NOTREACHED() << "Attempting to flip virtual keyboard root window when it " 82 NOTREACHED() << "Attempting to flip virtual keyboard root window when it "
84 << "is not enabled."; 83 << "is not enabled.";
85 return; 84 return;
86 } 85 }
87 display_manager->SetDisplayRotation( 86 display_manager->SetDisplayRotation(
88 display_manager->non_desktop_display().id(), gfx::Display::ROTATE_180); 87 display_manager->non_desktop_display().id(), gfx::Display::ROTATE_180);
89 88
90 aura::WindowTreeHost* host = root_window_controller_->host(); 89 aura::WindowTreeHost* host = root_window_controller_->GetHost();
91 scoped_ptr<aura::RootWindowTransformer> transformer( 90 scoped_ptr<RootWindowTransformer> transformer(
92 CreateRootWindowTransformerForDisplay( 91 CreateRootWindowTransformerForDisplay(
93 host->window(), display_manager->non_desktop_display())); 92 host->window(), display_manager->non_desktop_display()));
94 host->SetRootWindowTransformer(transformer.Pass()); 93 root_window_controller_->ash_host()->SetRootWindowTransformer(
94 transformer.Pass());
95 } 95 }
96 96
97 void VirtualKeyboardWindowController::OnMaximizeModeStarted() { 97 void VirtualKeyboardWindowController::OnMaximizeModeStarted() {
98 keyboard::SetTouchKeyboardEnabled(true); 98 keyboard::SetTouchKeyboardEnabled(true);
99 Shell::GetInstance()->CreateKeyboard(); 99 Shell::GetInstance()->CreateKeyboard();
100 } 100 }
101 101
102 void VirtualKeyboardWindowController::OnMaximizeModeEnded() { 102 void VirtualKeyboardWindowController::OnMaximizeModeEnded() {
103 keyboard::SetTouchKeyboardEnabled(false); 103 keyboard::SetTouchKeyboardEnabled(false);
104 if (!keyboard::IsKeyboardEnabled()) 104 if (!keyboard::IsKeyboardEnabled())
105 Shell::GetInstance()->DeactivateKeyboard(); 105 Shell::GetInstance()->DeactivateKeyboard();
106 } 106 }
107 107
108 } // namespace ash 108 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/root_window_transformers_unittest.cc ('k') | ash/host/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698