diff --git a/ChangeLog b/ChangeLog index 0f73f4c69a..e8a5697ced 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2004-05-09 Ronald Bultje + + * ext/gnomevfs/gstgnomevfssink.c: + (_gst_boolean_allow_overwrite_accumulator), + (gst_gnomevfssink_class_init), (gst_gnomevfssink_open_file): + Run glib's default signal handler (??) in RUN_CLEANUP rather than + RUN_LAST, and don't use that to set the accumulator value because + then it's always FALSE. + 2004-05-09 Ronald Bultje * gst-libs/gst/riff/riff-media.c: diff --git a/ext/gnomevfs/gstgnomevfssink.c b/ext/gnomevfs/gstgnomevfssink.c index c43400268f..2785bbe4ee 100644 --- a/ext/gnomevfs/gstgnomevfssink.c +++ b/ext/gnomevfs/gstgnomevfssink.c @@ -163,7 +163,8 @@ _gst_boolean_allow_overwrite_accumulator (GSignalInvocationHint * ihint, gboolean allow_overwrite; allow_overwrite = g_value_get_boolean (handler_return); - g_value_set_boolean (return_accu, allow_overwrite); + if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP)) + g_value_set_boolean (return_accu, allow_overwrite); /* stop emission if signal doesn't allow overwriting */ return allow_overwrite; @@ -192,7 +193,7 @@ gst_gnomevfssink_class_init (GstGnomeVFSSinkClass * klass) gst_gnomevfssink_signals[SIGNAL_ERASE_ASK] = g_signal_new ("allow-overwrite", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstGnomeVFSSinkClass, erase_ask), + G_SIGNAL_RUN_CLEANUP, G_STRUCT_OFFSET (GstGnomeVFSSinkClass, erase_ask), _gst_boolean_allow_overwrite_accumulator, NULL, gst_marshal_BOOLEAN__POINTER, G_TYPE_BOOLEAN, 1, G_TYPE_POINTER); @@ -340,8 +341,8 @@ gst_gnomevfssink_open_file (GstGnomeVFSSink * sink) GNOME_VFS_URI_HIDE_PASSWORD); GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_WRITE, - (_("Could not open vfs file \"%s\" for writing."), filename), - GST_ERROR_SYSTEM); + (_("Could not open vfs file \"%s\" for writing: %s."), + filename, gnome_vfs_result_to_string (result)), GST_ERROR_SYSTEM); g_free (filename); return FALSE; }