common: 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:
parent
adc4459db4
commit
32653a0a65
1 changed files with 9 additions and 1 deletions
|
@ -37,6 +37,7 @@
|
|||
#include <libgnome-desktop/gnome-languages.h>
|
||||
|
||||
typedef struct {
|
||||
GtkWidget *done_button;
|
||||
GtkWidget *no_results;
|
||||
GtkListBoxRow *more_item;
|
||||
GtkWidget *filter_entry;
|
||||
|
@ -358,8 +359,14 @@ row_activated (GtkListBox *box,
|
|||
return;
|
||||
}
|
||||
new_locale_id = g_object_get_data (G_OBJECT (row), "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
|
||||
cc_language_chooser_private_free (gpointer data)
|
||||
|
@ -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");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue