diff --git a/panels/common/cc-language-chooser.c b/panels/common/cc-language-chooser.c index de58306b3..39d2fc312 100644 --- a/panels/common/cc-language-chooser.c +++ b/panels/common/cc-language-chooser.c @@ -37,6 +37,7 @@ #include typedef struct { + GtkWidget *done_button; GtkWidget *no_results; GtkListBoxRow *more_item; GtkWidget *filter_entry; @@ -358,7 +359,13 @@ row_activated (GtkListBox *box, return; } new_locale_id = g_object_get_data (G_OBJECT (row), "locale-id"); - set_locale_id (chooser, new_locale_id); + if (g_strcmp0 (new_locale_id, priv->language) == 0) { + gtk_dialog_response (GTK_DIALOG (chooser), + gtk_dialog_get_response_for_widget (GTK_DIALOG (chooser), + priv->done_button)); + } else { + set_locale_id (chooser, new_locale_id); + } } static void @@ -397,6 +404,7 @@ cc_language_chooser_new (GtkWidget *parent) g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_language_chooser_private_free); g_object_set_data_full (G_OBJECT (chooser), "builder", builder, g_object_unref); + priv->done_button = WID ("ok-button"); priv->filter_entry = WID ("language-filter-entry"); priv->language_list = WID ("language-list"); priv->scrolledwindow = WID ("language-scrolledwindow");