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

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

Issue 2831583005: Enable Config::MUS to use classic IME instead of servicified IME. (Closed)
Patch Set: Fix compile errors in non ChromeOS. 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 unified diff | Download patch
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"
11 #include "ui/aura/mus/window_tree_client.h" 11 #include "ui/aura/mus/window_tree_client.h"
12 #include "ui/aura/mus/window_tree_host_mus_delegate.h" 12 #include "ui/aura/mus/window_tree_host_mus_delegate.h"
13 #include "ui/aura/mus/window_tree_host_mus_init_params.h" 13 #include "ui/aura/mus/window_tree_host_mus_init_params.h"
14 #include "ui/aura/window.h" 14 #include "ui/aura/window.h"
15 #include "ui/aura/window_event_dispatcher.h" 15 #include "ui/aura/window_event_dispatcher.h"
16 #include "ui/base/class_property.h" 16 #include "ui/base/class_property.h"
17 #include "ui/display/display.h" 17 #include "ui/display/display.h"
18 #include "ui/display/screen.h" 18 #include "ui/display/screen.h"
19 #include "ui/events/event.h" 19 #include "ui/events/event.h"
20 #include "ui/platform_window/stub/stub_window.h" 20 #include "ui/platform_window/stub/stub_window.h"
21 21
22 #if defined(OS_CHROMEOS)
23 #include "ui/base/ime/input_method_chromeos.h"
24 #endif
25
22 DECLARE_UI_CLASS_PROPERTY_TYPE(aura::WindowTreeHostMus*); 26 DECLARE_UI_CLASS_PROPERTY_TYPE(aura::WindowTreeHostMus*);
23 27
24 namespace aura { 28 namespace aura {
25 29
26 namespace { 30 namespace {
27 31
28 DEFINE_UI_CLASS_PROPERTY_KEY( 32 DEFINE_UI_CLASS_PROPERTY_KEY(
29 WindowTreeHostMus*, kWindowTreeHostMusKey, nullptr); 33 WindowTreeHostMus*, kWindowTreeHostMusKey, nullptr);
30 34
31 static uint32_t accelerated_widget_count = 1; 35 static uint32_t accelerated_widget_count = 1;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
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(
81 base::MakeUnique<ui::StubWindow>(this, use_default_accelerated_widget)); 85 base::MakeUnique<ui::StubWindow>(this, use_default_accelerated_widget));
82 86
83 input_method_ = base::MakeUnique<InputMethodMus>(this, window()); 87 InitInputMethod(&init_params);
84 input_method_->Init(init_params.window_tree_client->connector());
85 SetSharedInputMethod(input_method_.get());
86
87 compositor()->SetHostHasTransparentBackground(true); 88 compositor()->SetHostHasTransparentBackground(true);
88 89
89 // Mus windows are assumed hidden. 90 // Mus windows are assumed hidden.
90 compositor()->SetVisible(false); 91 compositor()->SetVisible(false);
91 92
92 if (init_params.frame_sink_id.is_valid()) 93 if (init_params.frame_sink_id.is_valid())
93 window_mus->SetFrameSinkIdFromServer(init_params.frame_sink_id); 94 window_mus->SetFrameSinkIdFromServer(init_params.frame_sink_id);
94 } 95 }
95 96
96 WindowTreeHostMus::~WindowTreeHostMus() { 97 WindowTreeHostMus::~WindowTreeHostMus() {
(...skipping 15 matching lines...) Expand all
112 } 113 }
113 114
114 return root->GetProperty(kWindowTreeHostMusKey); 115 return root->GetProperty(kWindowTreeHostMusKey);
115 } 116 }
116 117
117 void WindowTreeHostMus::SetBoundsFromServer(const gfx::Rect& bounds_in_pixels) { 118 void WindowTreeHostMus::SetBoundsFromServer(const gfx::Rect& bounds_in_pixels) {
118 base::AutoReset<bool> resetter(&in_set_bounds_from_server_, true); 119 base::AutoReset<bool> resetter(&in_set_bounds_from_server_, true);
119 SetBoundsInPixels(bounds_in_pixels); 120 SetBoundsInPixels(bounds_in_pixels);
120 } 121 }
121 122
123 void WindowTreeHostMus::DispatchEventToInputMethod(
124 ui::KeyEvent* event,
125 std::unique_ptr<base::Callback<void(bool)>> ack_callback) {
126 #if defined(OS_CHROMEOS)
127 if (input_method_chromeos_) {
128 input_method_chromeos_->DispatchKeyEvent(event, std::move(ack_callback));
129 return;
130 }
131 #endif
132 DCHECK(input_method_mus_);
133 input_method_mus_->DispatchKeyEvent(event, std::move(ack_callback));
134 }
135
122 void WindowTreeHostMus::SetClientArea( 136 void WindowTreeHostMus::SetClientArea(
123 const gfx::Insets& insets, 137 const gfx::Insets& insets,
124 const std::vector<gfx::Rect>& additional_client_area) { 138 const std::vector<gfx::Rect>& additional_client_area) {
125 delegate_->OnWindowTreeHostClientAreaWillChange(this, insets, 139 delegate_->OnWindowTreeHostClientAreaWillChange(this, insets,
126 additional_client_area); 140 additional_client_area);
127 } 141 }
128 142
129 void WindowTreeHostMus::SetHitTestMask(const base::Optional<gfx::Rect>& rect) { 143 void WindowTreeHostMus::SetHitTestMask(const base::Optional<gfx::Rect>& rect) {
130 delegate_->OnWindowTreeHostHitTestMaskWillChange(this, rect); 144 delegate_->OnWindowTreeHostHitTestMaskWillChange(this, rect);
131 } 145 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 216
203 void WindowTreeHostMus::MoveCursorToScreenLocationInPixels( 217 void WindowTreeHostMus::MoveCursorToScreenLocationInPixels(
204 const gfx::Point& location_in_pixels) { 218 const gfx::Point& location_in_pixels) {
205 // TODO: this needs to message the server http://crbug.com/693340. Setting 219 // 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 220 // the location is really only appropriate in tests, outside of tests this
207 // value is ignored. 221 // value is ignored.
208 NOTIMPLEMENTED(); 222 NOTIMPLEMENTED();
209 Env::GetInstance()->set_last_mouse_location(location_in_pixels); 223 Env::GetInstance()->set_last_mouse_location(location_in_pixels);
210 } 224 }
211 225
226 void WindowTreeHostMus::InitInputMethod(
227 WindowTreeHostMusInitParams* init_params) {
228 #if defined(OS_CHROMEOS)
229 if (init_params->use_classic_ime) {
230 input_method_chromeos_ = base::MakeUnique<ui::InputMethodChromeOS>(this);
sky 2017/04/20 20:18:49 Are you sure we need to set the input method at al
231 SetSharedInputMethod(input_method_chromeos_.get());
232 return;
233 }
234 #endif // defined(OS_CHROMEOS)
235
236 input_method_mus_ = base::MakeUnique<InputMethodMus>(this, window());
237 input_method_mus_->Init(init_params->window_tree_client->connector());
238 SetSharedInputMethod(input_method_mus_.get());
239 }
240
212 } // namespace aura 241 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698