[gnome-control-center] region: Dismiss dialog if the activated row was already ticked



commit 73644fdecc172736e8719a43787f4303779d6e9a
Author: Rui Matos <tiagomatos gmail com>
Date:   Tue Jul 7 17:20:36 2015 +0200

    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

 panels/region/cc-format-chooser.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/panels/region/cc-format-chooser.c b/panels/region/cc-format-chooser.c
index 5944781..edd6780 100644
--- a/panels/region/cc-format-chooser.c
+++ b/panels/region/cc-format-chooser.c
@@ -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");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]