Bug 553135 – eog crash: assertion failed. Gtk error:

2008-09-22  Matthias Clasen  <mclasen@redhat.com>

        Bug 553135 – eog crash: assertion failed. Gtk error:
        shortcuts_remove_rows: code should not be reached

        * gtk/gtkfilechooserdefault.c: Disconnect from GtkFileSystem
        signals when we are destroyed, in order to avoid nasty surprises.
        Patch by Claudio Saavedra


svn path=/trunk/; revision=21492
This commit is contained in:
Matthias Clasen 2008-09-22 18:32:31 +00:00 • committed by Matthias Clasen
commit 235480bd9c
2 changed files with 23 additions and 0 deletions

View file

@ -1,3 +1,12 @@
2008-09-22 Matthias Clasen <mclasen@redhat.com>
Bug 553135 – eog crash: assertion failed. Gtk error:
shortcuts_remove_rows: code should not be reached
* gtk/gtkfilechooserdefault.c: Disconnect from GtkFileSystem
signals when we are destroyed, in order to avoid nasty surprises.
Patch by Claudio Saavedra
2008-09-22 Emmanuele Bassi <ebassi@linux.intel.com>
Bug 552789 – Show size column in the search and recently used

View file

@ -455,6 +455,7 @@ static void recent_get_valid_child_iter (GtkFileChooserDefault *impl,
GtkTreeIter *child_iter,
GtkTreeIter *iter);
static void set_file_system_backend (GtkFileChooserDefault *impl);
static void unset_file_system_backend (GtkFileChooserDefault *impl);
@ -923,6 +924,8 @@ gtk_file_chooser_default_finalize (GObject *object)
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (object);
GSList *l;
unset_file_system_backend (impl);
if (impl->shortcuts_pane_filter_model)
g_object_unref (impl->shortcuts_pane_filter_model);
@ -5404,6 +5407,17 @@ set_file_system_backend (GtkFileChooserDefault *impl)
profile_end ("end", NULL);
}
static void
unset_file_system_backend (GtkFileChooserDefault *impl)
{
g_signal_handlers_disconnect_by_func (impl->file_system,
G_CALLBACK (volumes_bookmarks_changed_cb), impl);
g_object_unref (impl->file_system);
impl->file_system = NULL;
}
/* This function is basically a do_all function.
*
* It sets the visibility on all the widgets based on the current state, and