rpms/libgnomeui/devel libgnomeui-gio-fix-threading.patch, NONE, 1.1 libgnomeui.spec, 1.91, 1.92

Bastien Nocera (hadess) fedora-extras-commits at redhat.com
Mon Mar 10 10:57:57 UTC 2008


Author: hadess

Update of /cvs/pkgs/rpms/libgnomeui/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv4392

Modified Files:
	libgnomeui.spec 
Added Files:
	libgnomeui-gio-fix-threading.patch 
Log Message:
* Mon Mar 10 2008 - Bastien Nocera <bnocera at redhat.com> - 2.21.93-2
- Add patch to avoid hang on error in the filechooser under EOG


libgnomeui-gio-fix-threading.patch:

--- NEW FILE libgnomeui-gio-fix-threading.patch ---
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);
 }


Index: libgnomeui.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libgnomeui/devel/libgnomeui.spec,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -r1.91 -r1.92
--- libgnomeui.spec	7 Mar 2008 21:13:19 -0000	1.91
+++ libgnomeui.spec	10 Mar 2008 10:57:07 -0000	1.92
@@ -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 @@
 %prep
 %setup -q
 %patch0 -p1 -b .gio-thumbnail
+%patch1 -p0 -b .gio-hang
 
 aclocal
 automake
@@ -150,6 +153,9 @@
 %{_datadir}/gtk-doc/html/libgnomeui
 
 %changelog
+* Mon Mar 10 2008 - Bastien Nocera <bnocera at redhat.com> - 2.21.93-2
+- Add patch to avoid hang on error in the filechooser under EOG
+
 * Fri Mar 07 2008 - Bastien Nocera <bnocera at redhat.com> - 2.21.93-1
 - Update to 2.21.93
 




More information about the fedora-extras-commits mailing list