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

Side by Side Diff: content/browser/web_contents/touch_editable_impl_aura.cc

Issue 304883002: Enable touch text selection tests on all Aura platforms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Convert point to root window before screen Created 6 years, 6 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "content/browser/web_contents/touch_editable_impl_aura.h" 5 #include "content/browser/web_contents/touch_editable_impl_aura.h"
6 6
7 #include "content/browser/renderer_host/render_widget_host_impl.h" 7 #include "content/browser/renderer_host/render_widget_host_impl.h"
8 #include "content/browser/renderer_host/render_widget_host_view_aura.h" 8 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
9 #include "content/browser/web_contents/web_contents_impl.h" 9 #include "content/browser/web_contents/web_contents_impl.h"
10 #include "content/common/view_messages.h" 10 #include "content/common/view_messages.h"
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 } 248 }
249 249
250 gfx::NativeView TouchEditableImplAura::GetNativeView() const { 250 gfx::NativeView TouchEditableImplAura::GetNativeView() const {
251 return rwhva_ ? rwhva_->GetNativeView()->GetToplevelWindow() : NULL; 251 return rwhva_ ? rwhva_->GetNativeView()->GetToplevelWindow() : NULL;
252 } 252 }
253 253
254 void TouchEditableImplAura::ConvertPointToScreen(gfx::Point* point) { 254 void TouchEditableImplAura::ConvertPointToScreen(gfx::Point* point) {
255 if (!rwhva_) 255 if (!rwhva_)
256 return; 256 return;
257 aura::Window* window = rwhva_->GetNativeView(); 257 aura::Window* window = rwhva_->GetNativeView();
258 aura::Window* root = window->GetRootWindow();
259
260 // First convert the point to root window coordinates, then if there is a
261 // screen position client, convert it to screen coordinates.
262 aura::Window::ConvertPointToTarget(window, root, point);
258 aura::client::ScreenPositionClient* screen_position_client = 263 aura::client::ScreenPositionClient* screen_position_client =
259 aura::client::GetScreenPositionClient(window->GetRootWindow()); 264 aura::client::GetScreenPositionClient(root);
260 if (screen_position_client) 265 if (screen_position_client)
261 screen_position_client->ConvertPointToScreen(window, point); 266 screen_position_client->ConvertPointToScreen(root, point);
262 } 267 }
263 268
264 void TouchEditableImplAura::ConvertPointFromScreen(gfx::Point* point) { 269 void TouchEditableImplAura::ConvertPointFromScreen(gfx::Point* point) {
265 if (!rwhva_) 270 if (!rwhva_)
266 return; 271 return;
267 aura::Window* window = rwhva_->GetNativeView(); 272 aura::Window* window = rwhva_->GetNativeView();
273 aura::Window* root = window->GetRootWindow();
274
275 // If there is a screen position client, convert the point from screen to root
276 // window and then to client coordinates. Otherwise, suppose the point is in
277 // root window coordinates and convert it to client coordinates.
268 aura::client::ScreenPositionClient* screen_position_client = 278 aura::client::ScreenPositionClient* screen_position_client =
269 aura::client::GetScreenPositionClient(window->GetRootWindow()); 279 aura::client::GetScreenPositionClient(root);
270 if (screen_position_client) 280 if (screen_position_client)
271 screen_position_client->ConvertPointFromScreen(window, point); 281 screen_position_client->ConvertPointFromScreen(root, point);
282 aura::Window::ConvertPointToTarget(root, window, point);
272 } 283 }
273 284
274 bool TouchEditableImplAura::DrawsHandles() { 285 bool TouchEditableImplAura::DrawsHandles() {
275 return false; 286 return false;
276 } 287 }
277 288
278 void TouchEditableImplAura::OpenContextMenu(const gfx::Point& anchor) { 289 void TouchEditableImplAura::OpenContextMenu(const gfx::Point& anchor) {
279 if (!rwhva_) 290 if (!rwhva_)
280 return; 291 return;
281 gfx::Point point = anchor; 292 gfx::Point point = anchor;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 386 }
376 text_input_type_ = ui::TEXT_INPUT_TYPE_NONE; 387 text_input_type_ = ui::TEXT_INPUT_TYPE_NONE;
377 EndTouchEditing(true); 388 EndTouchEditing(true);
378 selection_gesture_in_process_ = false; 389 selection_gesture_in_process_ = false;
379 handles_hidden_due_to_scroll_ = false; 390 handles_hidden_due_to_scroll_ = false;
380 scroll_in_progress_ = false; 391 scroll_in_progress_ = false;
381 overscroll_in_progress_ = false; 392 overscroll_in_progress_ = false;
382 } 393 }
383 394
384 } // namespace content 395 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698