diff --git a/libgnomeui-gio-fix-threading.patch b/libgnomeui-gio-fix-threading.patch new file mode 100644 index 0000000..097ed6a --- /dev/null +++ b/libgnomeui-gio-fix-threading.patch @@ -0,0 +1,121 @@ +Index: gtkfilesystemgio.c +=================================================================== +--- gtkfilesystemgio.c (revision 5575) ++++ gtkfilesystemgio.c (working copy) +@@ -396,7 +396,9 @@ + GtkFileSystemGio *impl; + + impl = GTK_FILE_SYSTEM_GIO (user_data); ++ gdk_threads_enter (); + g_signal_emit_by_name (impl, "volumes-changed"); ++ gdk_threads_leave (); + } + + static gchar * +@@ -654,7 +656,9 @@ + NULL, NULL, NULL); + + folder->finished_loading = TRUE; ++ gdk_threads_enter (); + g_signal_emit_by_name (folder, "finished-loading", 0); ++ gdk_threads_leave (); + g_object_unref (folder); + return; + } +@@ -678,7 +682,9 @@ + enumerator_files_callback, + folder); + ++ gdk_threads_enter (); + g_signal_emit_by_name (folder, "files-added", added_files); ++ gdk_threads_leave (); + g_slist_foreach (added_files, (GFunc) g_free, NULL); + g_slist_free (added_files); + +@@ -701,10 +707,14 @@ + switch (event) + { + case G_FILE_MONITOR_EVENT_CREATED: ++ gdk_threads_enter (); + g_signal_emit_by_name (folder, "files-added", files); ++ gdk_threads_leave (); + break; + case G_FILE_MONITOR_EVENT_DELETED: ++ gdk_threads_enter (); + g_signal_emit_by_name (folder, "files-removed", files); ++ gdk_threads_leave (); + break; + default: + break; +@@ -754,9 +764,11 @@ + g_object_unref (enumerator); + } + ++ gdk_threads_enter (); + ((GtkFileSystemGetFolderCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + GTK_FILE_FOLDER (folder), + error, handle->data); ++ gdk_threads_leave (); + } + + static GtkFileSystemHandle * +@@ -925,8 +937,10 @@ + } + else + { ++ gdk_threads_enter (); + ((GtkFileSystemGetInfoCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + NULL, error, handle->data); ++ gdk_threads_leave (); + } + } + +@@ -968,8 +982,10 @@ + return; + } + ++ gdk_threads_enter (); + ((GtkFileSystemGetInfoCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + info, error, handle->data); ++ gdk_threads_leave (); + + if (info) + gtk_file_info_free (info); +@@ -1028,8 +1044,11 @@ + + g_file_make_directory (file, handle->cancellable, &error); + ++ gdk_threads_enter (); + ((GtkFileSystemCreateFolderCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + idle_data->path, error, handle->data); ++ gdk_threads_leave (); ++ + g_object_unref (file); + gtk_file_path_free (idle_data->path); + g_slice_free (CreateFolderData, idle_data); +@@ -1184,9 +1203,12 @@ + + g_volume_mount_finish (G_VOLUME (source_object), res, &error); + ++ gdk_threads_enter (); + ((GtkFileSystemVolumeMountCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + (GtkFileSystemVolume *) source_object, + error, handle->data); ++ gdk_threads_leave (); ++ + if (error) + g_error_free (error); + } +@@ -1203,9 +1225,12 @@ + + g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error); + ++ gdk_threads_enter (); + ((GtkFileSystemVolumeMountCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), + (GtkFileSystemVolume *) source_object, + error, handle->data); ++ gdk_threads_leave (); ++ + if (error) + g_error_free (error); + } diff --git a/libgnomeui.spec b/libgnomeui.spec index 0abd9af..dc845fc 100644 --- a/libgnomeui.spec +++ b/libgnomeui.spec @@ -18,11 +18,13 @@ Summary: GNOME base GUI library Name: libgnomeui Version: 2.21.93 -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.gnome.org Source0: http://download.gnome.org/sources/libgnomeui/2.21/%{name}-%{version}.tar.bz2 # http://bugzilla.gnome.org/show_bug.cgi?id=517276 Patch0: gio-thumbnail.patch +# http://bugzilla.gnome.org/show_bug.cgi?id=520903 +Patch1: libgnomeui-gio-fix-threading.patch License: LGPLv2+ Group: System Environment/Libraries @@ -105,6 +107,7 @@ environment. %prep %setup -q %patch0 -p1 -b .gio-thumbnail +%patch1 -p0 -b .gio-hang aclocal automake @@ -150,6 +153,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-doc/html/libgnomeui %changelog +* Mon Mar 10 2008 - Bastien Nocera - 2.21.93-2 +- Add patch to avoid hang on error in the filechooser under EOG + * Fri Mar 07 2008 - Bastien Nocera - 2.21.93-1 - Update to 2.21.93