diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/gtk/options/languages_page_gtk.cc | 9 | ||||
-rw-r--r-- | chrome/browser/gtk/options/languages_page_gtk_unittest.cc | 15 |
2 files changed, 19 insertions, 5 deletions
diff --git a/chrome/browser/gtk/options/languages_page_gtk.cc b/chrome/browser/gtk/options/languages_page_gtk.cc index dfea04a..81cfc04 100644 --- a/chrome/browser/gtk/options/languages_page_gtk.cc +++ b/chrome/browser/gtk/options/languages_page_gtk.cc @@ -385,10 +385,19 @@ void LanguagesPageGtk::OnRemoveButtonClicked(GtkButton* button, g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); g_list_free(list); + int selected_row = 0; for (std::set<int>::reverse_iterator selected = selected_rows.rbegin(); selected != selected_rows.rend(); ++selected) { languages_page->language_order_table_model_->Remove(*selected); + selected_row = *selected; } + int row_count = languages_page->language_order_table_model_->RowCount(); + if (row_count <= 0) + return; + if (selected_row >= row_count) + selected_row = row_count - 1; + gtk_tree::SelectAndFocusRowNum(selected_row, + GTK_TREE_VIEW(languages_page->language_order_tree_)); } // static diff --git a/chrome/browser/gtk/options/languages_page_gtk_unittest.cc b/chrome/browser/gtk/options/languages_page_gtk_unittest.cc index b788ce8..e587363 100644 --- a/chrome/browser/gtk/options/languages_page_gtk_unittest.cc +++ b/chrome/browser/gtk/options/languages_page_gtk_unittest.cc @@ -77,9 +77,10 @@ TEST_F(LanguagesPageGtkTest, RemoveAcceptLang) { EXPECT_STREQ("en,es", WideToASCII( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)).c_str()); EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.add_button_)); - EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_up_button_)); + EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.move_up_button_)); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_down_button_)); - EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(1, page.FirstSelectedRowNum()); gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(page.language_order_store_), &iter, NULL, 1); @@ -94,9 +95,10 @@ TEST_F(LanguagesPageGtkTest, RemoveAcceptLang) { EXPECT_STREQ("en", WideToASCII( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)).c_str()); EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.add_button_)); + EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.remove_button_)); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_up_button_)); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_down_button_)); - EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(0, page.FirstSelectedRowNum()); gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(page.language_order_store_), &iter, NULL, 0); @@ -111,9 +113,10 @@ TEST_F(LanguagesPageGtkTest, RemoveAcceptLang) { EXPECT_STREQ("", WideToASCII( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)).c_str()); EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.add_button_)); + EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_up_button_)); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.move_down_button_)); - EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(-1, page.FirstSelectedRowNum()); } TEST_F(LanguagesPageGtkTest, RemoveMultipleAcceptLang) { @@ -135,7 +138,8 @@ TEST_F(LanguagesPageGtkTest, RemoveMultipleAcceptLang) { EXPECT_STREQ("English,Spanish", GetDisplayedLangs(page).c_str()); EXPECT_STREQ("en,es", WideToASCII( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)).c_str()); - EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(TRUE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(1, page.FirstSelectedRowNum()); gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(page.language_order_store_), &iter, NULL, 1); @@ -150,6 +154,7 @@ TEST_F(LanguagesPageGtkTest, RemoveMultipleAcceptLang) { EXPECT_STREQ("", WideToASCII( profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)).c_str()); EXPECT_EQ(FALSE, GTK_WIDGET_SENSITIVE(page.remove_button_)); + EXPECT_EQ(-1, page.FirstSelectedRowNum()); } TEST_F(LanguagesPageGtkTest, MoveAcceptLang) { |