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

Unified Diff: chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc

Issue 194056: Fix text and selection's save/restore issue of omnibox when displaying tempor... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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/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);
+}

Powered by Google App Engine
This is Rietveld 408576698