[gtk+] When cancelling the app dialog return to the last item in combobox



commit 6f4df09a0437895a7c9e7b4efa7a2b1c03df2ee9
Author: William Jon McCann <jmccann redhat com>
Date:   Thu Jan 20 16:58:19 2011 -0500

    When cancelling the app dialog return to the last item in combobox
    
    https://bugzilla.gnome.org/show_bug.cgi?id=640011

 gtk/gtkappchooserbutton.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkappchooserbutton.c b/gtk/gtkappchooserbutton.c
index c01ce9b..4448899 100644
--- a/gtk/gtkappchooserbutton.c
+++ b/gtk/gtkappchooserbutton.c
@@ -88,6 +88,7 @@ G_DEFINE_TYPE_WITH_CODE (GtkAppChooserButton, gtk_app_chooser_button, GTK_TYPE_C
 struct _GtkAppChooserButtonPrivate {
   GtkListStore *store;
 
+  int last_active;
   gchar *content_type;
   gboolean show_dialog_item;
 
@@ -200,7 +201,7 @@ other_application_dialog_response_cb (GtkDialog *dialog,
       /* reset the active item, otherwise we are stuck on
        * 'Other application...'
        */
-      gtk_combo_box_set_active (GTK_COMBO_BOX (self), 0);
+      gtk_combo_box_set_active (GTK_COMBO_BOX (self), self->priv->last_active);
       gtk_widget_destroy (GTK_WIDGET (dialog));
       return;
     }
@@ -404,6 +405,7 @@ gtk_app_chooser_button_changed (GtkComboBox *object)
         {
           name_quark = g_quark_from_string (name);
           g_signal_emit (self, signals[SIGNAL_CUSTOM_ITEM_ACTIVATED], name_quark, name);
+          self->priv->last_active = gtk_combo_box_get_active (object);
         }
       else
         {
@@ -413,6 +415,8 @@ gtk_app_chooser_button_changed (GtkComboBox *object)
 
       g_free (name);
     }
+  else
+    self->priv->last_active = gtk_combo_box_get_active (object);
 }
 
 static void



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