|
|
gpointer user_data); | gpointer user_data); |
| |
static gboolean execute_vfs_callbacks_idle (gpointer data); | static gboolean execute_vfs_callbacks_idle (gpointer data); |
|
static void execute_vfs_callbacks (gpointer data); |
| |
static gchar *make_child_uri (const gchar *base_uri, | static gchar *make_child_uri (const gchar *base_uri, |
const gchar *child_name, | const gchar *child_name, |
|
|
system_vfs->execute_vfs_callbacks_idle_id = 0; | system_vfs->execute_vfs_callbacks_idle_id = 0; |
| |
/* call pending callbacks */ | /* call pending callbacks */ |
execute_vfs_callbacks_idle (system_vfs); |
execute_vfs_callbacks (system_vfs); |
} | } |
| |
/* cancel pending VFS operations */ | /* cancel pending VFS operations */ |
|
|
} | } |
| |
/* some code for making callback calls from idle */ | /* some code for making callback calls from idle */ |
static gboolean |
static void |
execute_vfs_callbacks_idle (gpointer data) |
execute_vfs_callbacks (gpointer data) |
{ | { |
GSList *l; | GSList *l; |
gboolean unref_file_system = TRUE; | gboolean unref_file_system = TRUE; |
GtkFileSystemGnomeVFS *system_vfs = GTK_FILE_SYSTEM_GNOME_VFS (data); | GtkFileSystemGnomeVFS *system_vfs = GTK_FILE_SYSTEM_GNOME_VFS (data); |
| |
GDK_THREADS_ENTER (); |
|
|
|
if (!system_vfs->execute_vfs_callbacks_idle_id) | if (!system_vfs->execute_vfs_callbacks_idle_id) |
unref_file_system = FALSE; | unref_file_system = FALSE; |
else | else |
|
|
g_object_unref (system_vfs); | g_object_unref (system_vfs); |
| |
system_vfs->execute_vfs_callbacks_idle_id = 0; | system_vfs->execute_vfs_callbacks_idle_id = 0; |
|
} |
|
|
|
static gboolean |
|
execute_vfs_callbacks_idle (gpointer data) |
|
{ |
|
GDK_THREADS_ENTER (); |
|
|
|
execute_vfs_callbacks (data); |
| |
GDK_THREADS_LEAVE (); | GDK_THREADS_LEAVE (); |
| |