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

Side by Side Diff: ui/aura/remote_window_tree_host_win.cc

Issue 560633002: Ensure that mouse lock works correctly on Chrome ASH in Windows 8. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review comments Created 6 years, 3 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/remote_window_tree_host_win.h ('k') | win8/metro_driver/chrome_app_view_ash.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/remote_window_tree_host_win.h" 5 #include "ui/aura/remote_window_tree_host_win.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 RemoteWindowTreeHostWin* g_instance = NULL; 86 RemoteWindowTreeHostWin* g_instance = NULL;
87 87
88 // static 88 // static
89 RemoteWindowTreeHostWin* RemoteWindowTreeHostWin::Instance() { 89 RemoteWindowTreeHostWin* RemoteWindowTreeHostWin::Instance() {
90 return g_instance; 90 return g_instance;
91 } 91 }
92 92
93 RemoteWindowTreeHostWin::RemoteWindowTreeHostWin() 93 RemoteWindowTreeHostWin::RemoteWindowTreeHostWin()
94 : remote_window_(NULL), 94 : remote_window_(NULL),
95 host_(NULL), 95 host_(NULL),
96 ignore_mouse_moves_until_set_cursor_ack_(false), 96 ignore_mouse_moves_until_set_cursor_ack_(0),
97 event_flags_(0), 97 event_flags_(0),
98 window_size_(aura::WindowTreeHost::GetNativeScreenSize()) { 98 window_size_(aura::WindowTreeHost::GetNativeScreenSize()) {
99 CHECK(!g_instance); 99 CHECK(!g_instance);
100 g_instance = this; 100 g_instance = this;
101 prop_.reset(new ui::ViewProp(NULL, kWindowTreeHostWinKey, this)); 101 prop_.reset(new ui::ViewProp(NULL, kWindowTreeHostWinKey, this));
102 CreateCompositor(GetAcceleratedWidget()); 102 CreateCompositor(GetAcceleratedWidget());
103 } 103 }
104 104
105 RemoteWindowTreeHostWin::~RemoteWindowTreeHostWin() { 105 RemoteWindowTreeHostWin::~RemoteWindowTreeHostWin() {
106 DestroyCompositor(); 106 DestroyCompositor();
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 // Other cases which don't expect this behavior should continue to work 255 // Other cases which don't expect this behavior should continue to work
256 // without issues. 256 // without issues.
257 257
258 // The mouse events are received by the viewer process and sent to the 258 // The mouse events are received by the viewer process and sent to the
259 // browser. If we invoke the SetCursor API here we continue to receive 259 // browser. If we invoke the SetCursor API here we continue to receive
260 // mouse messages from the viewer which were posted before the SetCursor 260 // mouse messages from the viewer which were posted before the SetCursor
261 // API executes which messes up the state in the browser. To workaround 261 // API executes which messes up the state in the browser. To workaround
262 // this we invoke the SetCursor API in the viewer process and ignore 262 // this we invoke the SetCursor API in the viewer process and ignore
263 // mouse messages until we received an ACK from the viewer indicating that 263 // mouse messages until we received an ACK from the viewer indicating that
264 // the SetCursor operation completed. 264 // the SetCursor operation completed.
265 ignore_mouse_moves_until_set_cursor_ack_ = true; 265 ignore_mouse_moves_until_set_cursor_ack_++;
266 VLOG(1) << "In MoveCursorTo. Sending IPC"; 266 VLOG(1) << "In MoveCursorTo. Sending IPC";
267 host_->Send(new MetroViewerHostMsg_SetCursorPos(location.x(), location.y())); 267 host_->Send(new MetroViewerHostMsg_SetCursorPos(location.x(), location.y()));
268 } 268 }
269 269
270 void RemoteWindowTreeHostWin::OnCursorVisibilityChangedNative(bool show) { 270 void RemoteWindowTreeHostWin::OnCursorVisibilityChangedNative(bool show) {
271 NOTIMPLEMENTED(); 271 NOTIMPLEMENTED();
272 } 272 }
273 273
274 void RemoteWindowTreeHostWin::PostNativeEvent( 274 void RemoteWindowTreeHostWin::PostNativeEvent(
275 const base::NativeEvent& native_event) { 275 const base::NativeEvent& native_event) {
276 } 276 }
277 277
278 ui::EventProcessor* RemoteWindowTreeHostWin::GetEventProcessor() { 278 ui::EventProcessor* RemoteWindowTreeHostWin::GetEventProcessor() {
279 return dispatcher(); 279 return dispatcher();
280 } 280 }
281 281
282 void RemoteWindowTreeHostWin::CancelComposition() { 282 void RemoteWindowTreeHostWin::CancelComposition() {
283 if (!host_) 283 if (!host_)
284 return; 284 return;
285 host_->Send(new MetroViewerHostMsg_ImeCancelComposition); 285 host_->Send(new MetroViewerHostMsg_ImeCancelComposition);
286 } 286 }
287 287
288 void RemoteWindowTreeHostWin::OnTextInputClientUpdated( 288 void remotewindowtreehostwin::OnTextInputClientUpdated(
289 const std::vector<int32>& input_scopes, 289 const std::vector<int32>& input_scopes,
290 const std::vector<gfx::Rect>& composition_character_bounds) { 290 const std::vector<gfx::Rect>& composition_character_bounds) {
291 if (!host_) 291 if (!host_)
292 return; 292 return;
293 std::vector<metro_viewer::CharacterBounds> character_bounds; 293 std::vector<metro_viewer::CharacterBounds> character_bounds;
294 for (size_t i = 0; i < composition_character_bounds.size(); ++i) { 294 for (size_t i = 0; i < composition_character_bounds.size(); ++i) {
295 const gfx::Rect& rect = composition_character_bounds[i]; 295 const gfx::Rect& rect = composition_character_bounds[i];
296 metro_viewer::CharacterBounds bounds; 296 metro_viewer::CharacterBounds bounds;
297 bounds.left = rect.x(); 297 bounds.left = rect.x();
298 bounds.top = rect.y(); 298 bounds.top = rect.y();
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 uint32 pointer_id) { 423 uint32 pointer_id) {
424 gfx::Point location = PointFromNativeEvent(x, y); 424 gfx::Point location = PointFromNativeEvent(x, y);
425 ui::TouchEvent event(ui::ET_TOUCH_MOVED, 425 ui::TouchEvent event(ui::ET_TOUCH_MOVED,
426 location, 426 location,
427 pointer_id, 427 pointer_id,
428 base::TimeDelta::FromMicroseconds(timestamp)); 428 base::TimeDelta::FromMicroseconds(timestamp));
429 SendEventToProcessor(&event); 429 SendEventToProcessor(&event);
430 } 430 }
431 431
432 void RemoteWindowTreeHostWin::OnSetCursorPosAck() { 432 void RemoteWindowTreeHostWin::OnSetCursorPosAck() {
433 DCHECK(ignore_mouse_moves_until_set_cursor_ack_); 433 DCHECK(ignore_mouse_moves_until_set_cursor_ack_ > 0);
sky 2014/09/09 23:40:59 DCHECK_GT
ananta 2014/09/09 23:52:51 Done.
434 ignore_mouse_moves_until_set_cursor_ack_ = false; 434 ignore_mouse_moves_until_set_cursor_ack_--;
435 } 435 }
436 436
437 ui::RemoteInputMethodPrivateWin* 437 ui::RemoteInputMethodPrivateWin*
438 RemoteWindowTreeHostWin::GetRemoteInputMethodPrivate() { 438 RemoteWindowTreeHostWin::GetRemoteInputMethodPrivate() {
439 ui::InputMethod* input_method = GetAshWindow()->GetProperty( 439 ui::InputMethod* input_method = GetAshWindow()->GetProperty(
440 aura::client::kRootWindowInputMethodKey); 440 aura::client::kRootWindowInputMethodKey);
441 return ui::RemoteInputMethodPrivateWin::Get(input_method); 441 return ui::RemoteInputMethodPrivateWin::Get(input_method);
442 } 442 }
443 443
444 void RemoteWindowTreeHostWin::OnImeCandidatePopupChanged(bool visible) { 444 void RemoteWindowTreeHostWin::OnImeCandidatePopupChanged(bool visible) {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 515 }
516 516
517 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) { 517 void RemoteWindowTreeHostWin::SetEventFlags(uint32 flags) {
518 if (flags == event_flags_) 518 if (flags == event_flags_)
519 return; 519 return;
520 event_flags_ = flags; 520 event_flags_ = flags;
521 SetVirtualKeyStates(event_flags_); 521 SetVirtualKeyStates(event_flags_);
522 } 522 }
523 523
524 } // namespace aura 524 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/remote_window_tree_host_win.h ('k') | win8/metro_driver/chrome_app_view_ash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698