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

Unified Diff: chrome/browser/renderer_host/render_widget_host_view_views.cc

Issue 8294026: Support IMM32 reconversion on Windows (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix return values Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/render_widget_host_view_views.cc
diff --git a/chrome/browser/renderer_host/render_widget_host_view_views.cc b/chrome/browser/renderer_host/render_widget_host_view_views.cc
index a13d19a9f6241710df6429fdd36991af5051fd7e..406e7bc8b0d8151e3c30bf42272926f5905ff5d7 100644
--- a/chrome/browser/renderer_host/render_widget_host_view_views.cc
+++ b/chrome/browser/renderer_host/render_widget_host_view_views.cc
@@ -384,10 +384,7 @@ void RenderWidgetHostViewViews::SetTooltipText(const string16& tip) {
void RenderWidgetHostViewViews::SelectionChanged(const string16& text,
size_t offset,
const ui::Range& range) {
- selection_text_ = text;
- selection_text_offset_ = offset;
- selection_range_ = range;
-
+ RenderWidgetHostView::SelectionChanged(text, offset, range);
// TODO(anicolao): deal with the clipboard without GTK
NOTIMPLEMENTED();
}
@@ -752,9 +749,9 @@ bool RenderWidgetHostViewViews::HasCompositionText() {
}
bool RenderWidgetHostViewViews::GetTextRange(ui::Range* range) {
Hironori Bono 2011/10/27 06:17:47 nit: I prefer adding 'DCHECK(range)' here.
Peng 2011/10/27 16:12:24 I used those kind of DHCECK() for input arguments.
- // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
- NOTIMPLEMENTED();
- return false;
+ *range = ui::Range(selection_text_offset_,
Hironori Bono 2011/10/27 06:17:47 nit: can we use operator= for ui::Range? In genera
Peng 2011/10/27 16:12:24 Done.
Peng 2011/10/27 16:12:24 Done.
+ selection_text_offset_ + selection_text_.length());
+ return true;
}
bool RenderWidgetHostViewViews::GetCompositionTextRange(ui::Range* range) {
@@ -764,9 +761,8 @@ bool RenderWidgetHostViewViews::GetCompositionTextRange(ui::Range* range) {
}
bool RenderWidgetHostViewViews::GetSelectionRange(ui::Range* range) {
Hironori Bono 2011/10/27 06:17:47 nit: I prefer adding 'DCHECK(range)' here.
Peng 2011/10/27 16:12:24 ditto
- // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
- NOTIMPLEMENTED();
- return false;
+ *range = selection_range_;
Hironori Bono 2011/10/27 06:17:47 nit: if ui::Range explicitly allows using copy con
Peng 2011/10/27 16:12:24 Done.
+ return true;
}
bool RenderWidgetHostViewViews::SetSelectionRange(const ui::Range& range) {
@@ -783,10 +779,25 @@ bool RenderWidgetHostViewViews::DeleteRange(const ui::Range& range) {
bool RenderWidgetHostViewViews::GetTextFromRange(
const ui::Range& range,
- const base::Callback<void(const string16&)>& callback) {
- // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
- NOTIMPLEMENTED();
- return false;
+ string16* text) {
Hironori Bono 2011/10/27 06:17:47 nit: I prefer adding 'DCHECK(text)' here.
Peng 2011/10/27 16:12:24 ditto
+ ui::Range selection_text_range(selection_text_offset_,
+ selection_text_offset_ + selection_text_.length());
+
+ if (!selection_text_range.Contains(range)) {
+ text->clear();
+ return false;
+ }
+
+ if (range.GetMin() == selection_text_range.start() &&
+ range.GetMax() == selection_text_range.end()) {
+ // Avoid calling substr which performance is low.
+ *text = selection_text_;
+ } else {
+ *text = selection_text_.substr(
+ range.GetMin() - selection_text_offset_,
+ range.length());
+ }
+ return true;
}
void RenderWidgetHostViewViews::OnInputMethodChanged() {

Powered by Google App Engine
This is Rietveld 408576698