Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/frame_host/render_frame_host_impl.h" | |
| 7 #include "content/browser/renderer_host/render_widget_host_impl.h" | 8 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 8 #include "content/browser/renderer_host/render_widget_host_view_aura.h" | 9 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 9 #include "content/common/view_messages.h" | 10 #include "content/common/view_messages.h" |
| 10 #include "content/public/browser/render_widget_host.h" | 11 #include "content/public/browser/render_widget_host.h" |
| 11 #include "grit/ui_strings.h" | 12 #include "grit/ui_strings.h" |
| 12 #include "ui/aura/client/activation_client.h" | 13 #include "ui/aura/client/activation_client.h" |
| 13 #include "ui/aura/client/screen_position_client.h" | 14 #include "ui/aura/client/screen_position_client.h" |
| 14 #include "ui/aura/window.h" | 15 #include "ui/aura/window.h" |
| 15 #include "ui/aura/window_event_dispatcher.h" | 16 #include "ui/aura/window_event_dispatcher.h" |
| 16 #include "ui/base/clipboard/clipboard.h" | 17 #include "ui/base/clipboard/clipboard.h" |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 if (tap_gesture_tap_count_queue_.front() > 1) | 215 if (tap_gesture_tap_count_queue_.front() > 1) |
| 215 selection_gesture_in_process_ = false; | 216 selection_gesture_in_process_ = false; |
| 216 tap_gesture_tap_count_queue_.pop(); | 217 tap_gesture_tap_count_queue_.pop(); |
| 217 } | 218 } |
| 218 } | 219 } |
| 219 | 220 |
| 220 void TouchEditableImplAura::OnViewDestroyed() { | 221 void TouchEditableImplAura::OnViewDestroyed() { |
| 221 Cleanup(); | 222 Cleanup(); |
| 222 } | 223 } |
| 223 | 224 |
| 225 void TouchEditableImplAura::SetContextMenuRenderFrameID( | |
| 226 int render_process_id, int render_frame_id) { | |
|
nasko
2014/03/05 21:50:47
style: params should be on separate lines.
jam
2014/03/06 00:59:37
Done.
| |
| 227 menu_render_process_id_ = render_process_id; | |
| 228 menu_render_frame_id_ = render_frame_id; | |
| 229 } | |
| 230 | |
| 224 //////////////////////////////////////////////////////////////////////////////// | 231 //////////////////////////////////////////////////////////////////////////////// |
| 225 // TouchEditableImplAura, ui::TouchEditable implementation: | 232 // TouchEditableImplAura, ui::TouchEditable implementation: |
| 226 | 233 |
| 227 void TouchEditableImplAura::SelectRect(const gfx::Point& start, | 234 void TouchEditableImplAura::SelectRect(const gfx::Point& start, |
| 228 const gfx::Point& end) { | 235 const gfx::Point& end) { |
| 229 if (!rwhva_) | 236 if (!rwhva_) |
| 230 return; | 237 return; |
| 231 | 238 |
| 232 RenderWidgetHostImpl* host = RenderWidgetHostImpl::From( | 239 RenderWidgetHostImpl* host = RenderWidgetHostImpl::From( |
| 233 rwhva_->GetRenderWidgetHost()); | 240 rwhva_->GetRenderWidgetHost()); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 283 } | 290 } |
| 284 | 291 |
| 285 void TouchEditableImplAura::OpenContextMenu(const gfx::Point& anchor) { | 292 void TouchEditableImplAura::OpenContextMenu(const gfx::Point& anchor) { |
| 286 if (!rwhva_) | 293 if (!rwhva_) |
| 287 return; | 294 return; |
| 288 gfx::Point point = anchor; | 295 gfx::Point point = anchor; |
| 289 ConvertPointFromScreen(&point); | 296 ConvertPointFromScreen(&point); |
| 290 RenderWidgetHost* host = rwhva_->GetRenderWidgetHost(); | 297 RenderWidgetHost* host = rwhva_->GetRenderWidgetHost(); |
| 291 host->Send(new ViewMsg_ShowContextMenu(host->GetRoutingID(), point)); | 298 host->Send(new ViewMsg_ShowContextMenu(host->GetRoutingID(), point)); |
| 292 EndTouchEditing(false); | 299 EndTouchEditing(false); |
| 300 menu_render_process_id_ = MSG_ROUTING_NONE; | |
| 301 menu_render_frame_id_ = MSG_ROUTING_NONE; | |
| 293 } | 302 } |
| 294 | 303 |
| 295 bool TouchEditableImplAura::IsCommandIdChecked(int command_id) const { | 304 bool TouchEditableImplAura::IsCommandIdChecked(int command_id) const { |
| 296 NOTREACHED(); | 305 NOTREACHED(); |
| 297 return false; | 306 return false; |
| 298 } | 307 } |
| 299 | 308 |
| 300 bool TouchEditableImplAura::IsCommandIdEnabled(int command_id) const { | 309 bool TouchEditableImplAura::IsCommandIdEnabled(int command_id) const { |
| 301 if (!rwhva_) | 310 if (!rwhva_) |
| 302 return false; | 311 return false; |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 327 bool TouchEditableImplAura::GetAcceleratorForCommandId( | 336 bool TouchEditableImplAura::GetAcceleratorForCommandId( |
| 328 int command_id, | 337 int command_id, |
| 329 ui::Accelerator* accelerator) { | 338 ui::Accelerator* accelerator) { |
| 330 return false; | 339 return false; |
| 331 } | 340 } |
| 332 | 341 |
| 333 void TouchEditableImplAura::ExecuteCommand(int command_id, int event_flags) { | 342 void TouchEditableImplAura::ExecuteCommand(int command_id, int event_flags) { |
| 334 if (!rwhva_) | 343 if (!rwhva_) |
| 335 return; | 344 return; |
| 336 RenderWidgetHost* host = rwhva_->GetRenderWidgetHost(); | 345 RenderWidgetHost* host = rwhva_->GetRenderWidgetHost(); |
| 346 | |
| 347 DCHECK_NE(menu_render_process_id_ , MSG_ROUTING_NONE); | |
| 348 DCHECK_NE(menu_render_frame_id_, MSG_ROUTING_NONE); | |
| 349 RenderFrameHostImpl* frame = RenderFrameHostImpl::FromID( | |
| 350 menu_render_process_id_, menu_render_frame_id_); | |
| 337 switch (command_id) { | 351 switch (command_id) { |
| 338 case IDS_APP_CUT: | 352 case IDS_APP_CUT: |
| 339 host->Cut(); | 353 if (frame) |
| 354 frame->Cut(); | |
| 340 break; | 355 break; |
| 341 case IDS_APP_COPY: | 356 case IDS_APP_COPY: |
| 342 host->Copy(); | 357 if (frame) |
| 358 frame->Copy(); | |
| 343 break; | 359 break; |
| 344 case IDS_APP_PASTE: | 360 case IDS_APP_PASTE: |
| 345 host->Paste(); | 361 if (frame) |
| 362 frame->Paste(); | |
| 346 break; | 363 break; |
| 347 case IDS_APP_DELETE: | 364 case IDS_APP_DELETE: |
| 348 host->Delete(); | 365 host->Delete(); |
| 349 break; | 366 break; |
| 350 case IDS_APP_SELECT_ALL: | 367 case IDS_APP_SELECT_ALL: |
| 351 host->SelectAll(); | 368 host->SelectAll(); |
| 352 break; | 369 break; |
| 353 default: | 370 default: |
| 354 NOTREACHED(); | 371 NOTREACHED(); |
| 355 break; | 372 break; |
| 356 } | 373 } |
| 357 EndTouchEditing(false); | 374 EndTouchEditing(false); |
| 358 } | 375 } |
| 359 | 376 |
| 360 //////////////////////////////////////////////////////////////////////////////// | 377 //////////////////////////////////////////////////////////////////////////////// |
| 361 // TouchEditableImplAura, private: | 378 // TouchEditableImplAura, private: |
| 362 | 379 |
| 363 TouchEditableImplAura::TouchEditableImplAura() | 380 TouchEditableImplAura::TouchEditableImplAura() |
| 364 : text_input_type_(ui::TEXT_INPUT_TYPE_NONE), | 381 : text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
| 365 rwhva_(NULL), | 382 rwhva_(NULL), |
| 383 menu_render_process_id_(MSG_ROUTING_NONE), | |
| 384 menu_render_frame_id_(MSG_ROUTING_NONE), | |
| 366 selection_gesture_in_process_(false), | 385 selection_gesture_in_process_(false), |
| 367 handles_hidden_due_to_scroll_(false), | 386 handles_hidden_due_to_scroll_(false), |
| 368 scroll_in_progress_(false), | 387 scroll_in_progress_(false), |
| 369 overscroll_in_progress_(false), | 388 overscroll_in_progress_(false), |
| 370 is_tap_on_focused_textfield_(false) { | 389 is_tap_on_focused_textfield_(false) { |
| 371 } | 390 } |
| 372 | 391 |
| 373 void TouchEditableImplAura::Cleanup() { | 392 void TouchEditableImplAura::Cleanup() { |
| 374 if (rwhva_) { | 393 if (rwhva_) { |
| 375 rwhva_->set_touch_editing_client(NULL); | 394 rwhva_->set_touch_editing_client(NULL); |
| 376 rwhva_ = NULL; | 395 rwhva_ = NULL; |
| 377 } | 396 } |
| 378 text_input_type_ = ui::TEXT_INPUT_TYPE_NONE; | 397 text_input_type_ = ui::TEXT_INPUT_TYPE_NONE; |
| 379 EndTouchEditing(true); | 398 EndTouchEditing(true); |
| 380 handles_hidden_due_to_scroll_ = false; | 399 handles_hidden_due_to_scroll_ = false; |
| 381 scroll_in_progress_ = false; | 400 scroll_in_progress_ = false; |
| 382 overscroll_in_progress_ = false; | 401 overscroll_in_progress_ = false; |
| 383 } | 402 } |
| 384 | 403 |
| 385 } // namespace content | 404 } // namespace content |
| OLD | NEW |