Index: chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc |
=================================================================== |
--- chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc (revision 25735) |
+++ chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc (working copy) |
@@ -338,26 +338,13 @@ |
SetTextAndSelectedRange(text, range); |
} |
-void AutocompleteEditViewGtk::SetTextAndSelectedRange(const std::wstring& text, |
- const CharRange& range) { |
- std::string utf8 = WideToUTF8(text); |
- gtk_text_buffer_set_text(text_buffer_, utf8.data(), utf8.length()); |
- |
- GtkTextIter insert, bound; |
- ItersFromCharRange(range, &insert, &bound); |
- gtk_text_buffer_select_range(text_buffer_, &insert, &bound); |
-} |
- |
void AutocompleteEditViewGtk::SetForcedQuery() { |
const std::wstring current_text(GetText()); |
if (current_text.empty() || (current_text[0] != '?')) { |
SetUserText(L"?"); |
} else { |
- GtkTextIter start, end; |
- gtk_text_buffer_get_bounds(text_buffer_, &start, &end); |
- gtk_text_buffer_get_iter_at_offset(text_buffer_, &start, 1); |
StartUpdatingHighlightedText(); |
- gtk_text_buffer_select_range(text_buffer_, &start, &end); |
+ SetSelectedRange(CharRange(current_text.size(), 1)); |
FinishUpdatingHighlightedText(); |
} |
} |
@@ -407,10 +394,8 @@ |
void AutocompleteEditViewGtk::OnTemporaryTextMaybeChanged( |
const std::wstring& display_text, |
bool save_original_selection) { |
- if (save_original_selection) { |
+ if (save_original_selection) |
saved_temporary_selection_ = GetSelection(); |
- saved_temporary_text_ = GetText(); |
- } |
StartUpdatingHighlightedText(); |
SetWindowTextAndCaretPos(display_text, display_text.length()); |
@@ -425,14 +410,8 @@ |
return false; |
StartUpdatingHighlightedText(); |
- SetWindowTextAndCaretPos(display_text, 0); |
- |
- // Select the part of the text that was inline autocompleted. |
- GtkTextIter bound, insert; |
- gtk_text_buffer_get_bounds(text_buffer_, &insert, &bound); |
- gtk_text_buffer_get_iter_at_offset(text_buffer_, &insert, user_text_length); |
- gtk_text_buffer_select_range(text_buffer_, &insert, &bound); |
- |
+ CharRange range(display_text.size(), user_text_length); |
+ SetTextAndSelectedRange(display_text, range); |
FinishUpdatingHighlightedText(); |
TextChanged(); |
return true; |
@@ -440,9 +419,8 @@ |
void AutocompleteEditViewGtk::OnRevertTemporaryText() { |
StartUpdatingHighlightedText(); |
- SetTextAndSelectedRange(saved_temporary_text_, saved_temporary_selection_); |
+ SetSelectedRange(saved_temporary_selection_); |
FinishUpdatingHighlightedText(); |
- saved_temporary_text_.clear(); |
TextChanged(); |
} |
@@ -1175,3 +1153,16 @@ |
gtk_clipboard_set_text( |
clipboard, selected_text.data(), selected_text.size()); |
} |
+ |
+void AutocompleteEditViewGtk::SetTextAndSelectedRange(const std::wstring& text, |
+ const CharRange& range) { |
+ std::string utf8 = WideToUTF8(text); |
+ gtk_text_buffer_set_text(text_buffer_, utf8.data(), utf8.length()); |
+ SetSelectedRange(range); |
+} |
+ |
+void AutocompleteEditViewGtk::SetSelectedRange(const CharRange& range) { |
+ GtkTextIter insert, bound; |
+ ItersFromCharRange(range, &bound, &insert); |
+ gtk_text_buffer_select_range(text_buffer_, &insert, &bound); |
+} |