| OLD | NEW |
| 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 "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1034 } | 1034 } |
| 1035 | 1035 |
| 1036 void RenderWidgetHostViewAura::SelectionChanged(const base::string16& text, | 1036 void RenderWidgetHostViewAura::SelectionChanged(const base::string16& text, |
| 1037 size_t offset, | 1037 size_t offset, |
| 1038 const gfx::Range& range) { | 1038 const gfx::Range& range) { |
| 1039 RenderWidgetHostViewBase::SelectionChanged(text, offset, range); | 1039 RenderWidgetHostViewBase::SelectionChanged(text, offset, range); |
| 1040 | 1040 |
| 1041 #if defined(USE_X11) && !defined(OS_CHROMEOS) | 1041 #if defined(USE_X11) && !defined(OS_CHROMEOS) |
| 1042 if (text.empty() || range.is_empty()) | 1042 if (text.empty() || range.is_empty()) |
| 1043 return; | 1043 return; |
| 1044 size_t pos = range.GetMin() - offset; |
| 1045 size_t n = range.length(); |
| 1046 |
| 1047 DCHECK(pos + n <= text.length()) << "The text can not fully cover range."; |
| 1048 if (pos >= text.length()) { |
| 1049 NOTREACHED() << "The text can not cover range."; |
| 1050 return; |
| 1051 } |
| 1044 | 1052 |
| 1045 // Set the CLIPBOARD_TYPE_SELECTION to the ui::Clipboard. | 1053 // Set the CLIPBOARD_TYPE_SELECTION to the ui::Clipboard. |
| 1046 ui::ScopedClipboardWriter clipboard_writer( | 1054 ui::ScopedClipboardWriter clipboard_writer( |
| 1047 ui::Clipboard::GetForCurrentThread(), | 1055 ui::Clipboard::GetForCurrentThread(), |
| 1048 ui::CLIPBOARD_TYPE_SELECTION); | 1056 ui::CLIPBOARD_TYPE_SELECTION); |
| 1049 clipboard_writer.WriteText(text); | 1057 clipboard_writer.WriteText(text.substr(pos, n)); |
| 1050 #endif // defined(USE_X11) && !defined(OS_CHROMEOS) | 1058 #endif // defined(USE_X11) && !defined(OS_CHROMEOS) |
| 1051 } | 1059 } |
| 1052 | 1060 |
| 1053 void RenderWidgetHostViewAura::SelectionBoundsChanged( | 1061 void RenderWidgetHostViewAura::SelectionBoundsChanged( |
| 1054 const ViewHostMsg_SelectionBounds_Params& params) { | 1062 const ViewHostMsg_SelectionBounds_Params& params) { |
| 1055 if (selection_anchor_rect_ == params.anchor_rect && | 1063 if (selection_anchor_rect_ == params.anchor_rect && |
| 1056 selection_focus_rect_ == params.focus_rect) | 1064 selection_focus_rect_ == params.focus_rect) |
| 1057 return; | 1065 return; |
| 1058 | 1066 |
| 1059 selection_anchor_rect_ = params.anchor_rect; | 1067 selection_anchor_rect_ = params.anchor_rect; |
| (...skipping 2535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3595 RenderWidgetHost* widget) { | 3603 RenderWidgetHost* widget) { |
| 3596 return new RenderWidgetHostViewAura(widget); | 3604 return new RenderWidgetHostViewAura(widget); |
| 3597 } | 3605 } |
| 3598 | 3606 |
| 3599 // static | 3607 // static |
| 3600 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { | 3608 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { |
| 3601 GetScreenInfoForWindow(results, NULL); | 3609 GetScreenInfoForWindow(results, NULL); |
| 3602 } | 3610 } |
| 3603 | 3611 |
| 3604 } // namespace content | 3612 } // namespace content |
| OLD | NEW |