region: Dismiss dialog if the activated row was already ticked

This makes the dialog a bit friendlier to use.

https://bugzilla.gnome.org/show_bug.cgi?id=752001
This commit is contained in:
Rui Matos 2015-07-07 17:20:36 +02:00
parent 32653a0a65
commit 73644fdecc

View file

@ -36,6 +36,7 @@
typedef struct {
GtkWidget *done_button;
GtkWidget *no_results;
GtkListBoxRow *more_item;
GtkWidget *filter_entry;
@ -461,7 +462,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->region) == 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
@ -498,6 +505,7 @@ cc_format_chooser_new (GtkWidget *parent)
g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_format_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 ("region-filter-entry");
priv->list = WID ("region-list");
priv->scrolledwindow = WID ("region-scrolledwindow");