summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/options
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/options')
-rw-r--r--chrome/browser/views/options/languages_page_view.cc21
-rw-r--r--chrome/browser/views/options/languages_page_view.h4
2 files changed, 19 insertions, 6 deletions
diff --git a/chrome/browser/views/options/languages_page_view.cc b/chrome/browser/views/options/languages_page_view.cc
index 465a2fa..9a22c74 100644
--- a/chrome/browser/views/options/languages_page_view.cc
+++ b/chrome/browser/views/options/languages_page_view.cc
@@ -681,6 +681,7 @@ void LanguagesPageView::NotifyPrefChanged(const std::wstring* pref_name) {
int index = dictionary_language_model_->GetSelectedLanguageIndex(
prefs::kSpellCheckDictionary);
change_dictionary_language_combobox_->SetSelectedItem(index);
+ spellcheck_language_index_selected_ = -1;
}
}
@@ -693,11 +694,8 @@ void LanguagesPageView::ItemChanged(ChromeViews::ComboBox* sender,
app_locale_.SetValue(ui_language_model_->GetLocaleFromIndex(new_index));
RestartMessageBox::ShowMessageBox(GetRootWindow());
} else if (sender == change_dictionary_language_combobox_) {
- UserMetricsRecordAction(L"Options_DictionaryLanguage",
- profile()->GetPrefs());
- dictionary_language_.SetValue(dictionary_language_model_->
- GetLocaleFromIndex(new_index));
- RestartMessageBox::ShowMessageBox(GetRootWindow());
+ if (new_index != prev_index)
+ spellcheck_language_index_selected_ = new_index;
}
}
@@ -750,5 +748,16 @@ void LanguagesPageView::OnMoveUpLanguage() {
void LanguagesPageView::SaveChanges() {
if (language_order_table_model_.get() && language_table_edited_)
accept_languages_.SetValue(language_order_table_model_->GetLanguageList());
-}
+ if (spellcheck_language_index_selected_ != -1) {
+ UserMetricsRecordAction(L"Options_DictionaryLanguage",
+ profile()->GetPrefs());
+ dictionary_language_.SetValue(dictionary_language_model_->
+ GetLocaleFromIndex(spellcheck_language_index_selected_));
+
+ // Initialize spellchecker. Keeping with the tradition, spellchecker is
+ // being initialized in this UI thread. However, it must be USED in the IO
+ // thread.
+ profile()->InitializeSpellChecker();
+ }
+}
diff --git a/chrome/browser/views/options/languages_page_view.h b/chrome/browser/views/options/languages_page_view.h
index 41c362f..fc7d0b0 100644
--- a/chrome/browser/views/options/languages_page_view.h
+++ b/chrome/browser/views/options/languages_page_view.h
@@ -89,6 +89,10 @@ class LanguagesPageView : public OptionsPageView,
// The contents of the "dictionary language" combobox.
scoped_ptr<LanguageComboboxModel> dictionary_language_model_;
StringPrefMember dictionary_language_;
+
+ // This is assigned the new index of spellcheck language if the language
+ // is changed. Otherwise, it remains -1, and pref members are not updated.
+ int spellcheck_language_index_selected_;
bool language_table_edited_;