When cancelling the app dialog return to the last item in combobox

https://bugzilla.gnome.org/show_bug.cgi?id=640011
This commit is contained in:
William Jon McCann 2011-01-20 16:58:19 -05:00 committed by Matthias Clasen
parent 9532e96db4
commit 6f4df09a04

View File

@ -88,6 +88,7 @@ G_DEFINE_TYPE_WITH_CODE (GtkAppChooserButton, gtk_app_chooser_button, GTK_TYPE_C
struct _GtkAppChooserButtonPrivate { struct _GtkAppChooserButtonPrivate {
GtkListStore *store; GtkListStore *store;
int last_active;
gchar *content_type; gchar *content_type;
gboolean show_dialog_item; gboolean show_dialog_item;
@ -200,7 +201,7 @@ other_application_dialog_response_cb (GtkDialog *dialog,
/* reset the active item, otherwise we are stuck on /* reset the active item, otherwise we are stuck on
* 'Other application...' * '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)); gtk_widget_destroy (GTK_WIDGET (dialog));
return; return;
} }
@ -404,6 +405,7 @@ gtk_app_chooser_button_changed (GtkComboBox *object)
{ {
name_quark = g_quark_from_string (name); name_quark = g_quark_from_string (name);
g_signal_emit (self, signals[SIGNAL_CUSTOM_ITEM_ACTIVATED], name_quark, name); g_signal_emit (self, signals[SIGNAL_CUSTOM_ITEM_ACTIVATED], name_quark, name);
self->priv->last_active = gtk_combo_box_get_active (object);
} }
else else
{ {
@ -413,6 +415,8 @@ gtk_app_chooser_button_changed (GtkComboBox *object)
g_free (name); g_free (name);
} }
else
self->priv->last_active = gtk_combo_box_get_active (object);
} }
static void static void