summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/gtk/options/languages_page_gtk.cc9
-rw-r--r--chrome/browser/gtk/options/languages_page_gtk_unittest.cc15
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) {