summaryrefslogtreecommitdiff
path: root/libmate-desktop/mate-desktop-thumbnail.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmate-desktop/mate-desktop-thumbnail.c')
-rw-r--r--libmate-desktop/mate-desktop-thumbnail.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/libmate-desktop/mate-desktop-thumbnail.c b/libmate-desktop/mate-desktop-thumbnail.c
index 5a1ef23..216a0b7 100644
--- a/libmate-desktop/mate-desktop-thumbnail.c
+++ b/libmate-desktop/mate-desktop-thumbnail.c
@@ -50,7 +50,11 @@
struct _MateDesktopThumbnailFactoryPrivate {
MateDesktopThumbnailSize size;
+#if GLIB_CHECK_VERSION(2, 31, 0)
GMutex lock;
+#else
+ GMutex* lock;
+#endif
GList *thumbnailers;
GHashTable *mime_types_map;
@@ -493,7 +497,15 @@ mate_desktop_thumbnail_factory_finalize (GObject *object)
priv->monitors = NULL;
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_clear (&priv->lock);
+#else
+ if (priv->lock)
+ {
+ g_mutex_free (priv->lock);
+ priv->lock = NULL;
+ }
+#endif
if (priv->disabled_types)
{
@@ -578,7 +590,11 @@ update_or_create_thumbnailer (MateDesktopThumbnailFactory *factory,
Thumbnailer *thumb;
gboolean found = FALSE;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&priv->lock);
+#else
+ g_mutex_lock (priv->lock);
+#endif
for (l = priv->thumbnailers; l && !found; l = g_list_next (l))
{
@@ -606,7 +622,11 @@ update_or_create_thumbnailer (MateDesktopThumbnailFactory *factory,
mate_desktop_thumbnail_factory_add_thumbnailer (factory, thumb);
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&priv->lock);
+#else
+ g_mutex_unlock (priv->lock);
+#endif
}
static void
@@ -617,7 +637,11 @@ remove_thumbnailer (MateDesktopThumbnailFactory *factory,
GList *l;
Thumbnailer *thumb;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&priv->lock);
+#else
+ g_mutex_lock (priv->lock);
+#endif
for (l = priv->thumbnailers; l; l = g_list_next (l))
{
@@ -635,7 +659,11 @@ remove_thumbnailer (MateDesktopThumbnailFactory *factory,
}
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&priv->lock);
+#else
+ g_mutex_unlock (priv->lock);
+#endif
}
static void
@@ -737,7 +765,11 @@ external_thumbnailers_disabled_all_changed_cb (GSettings *set
{
MateDesktopThumbnailFactoryPrivate *priv = factory->priv;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&priv->lock);
+#else
+ g_mutex_lock (priv->lock);
+#endif
priv->disabled = g_settings_get_boolean (priv->settings, "disable-all");
if (priv->disabled)
@@ -751,7 +783,11 @@ external_thumbnailers_disabled_all_changed_cb (GSettings *set
mate_desktop_thumbnail_factory_load_thumbnailers (factory);
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&priv->lock);
+#else
+ g_mutex_unlock (priv->lock);
+#endif
}
static void
@@ -761,14 +797,22 @@ external_thumbnailers_disabled_changed_cb (GSettings *setting
{
MateDesktopThumbnailFactoryPrivate *priv = factory->priv;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&priv->lock);
+#else
+ g_mutex_lock (priv->lock);
+#endif
if (priv->disabled)
return;
g_strfreev (priv->disabled_types);
priv->disabled_types = g_settings_get_strv (priv->settings, "disable");
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&priv->lock);
+#else
+ g_mutex_unlock (priv->lock);
+#endif
}
static void
@@ -787,7 +831,11 @@ mate_desktop_thumbnail_factory_init (MateDesktopThumbnailFactory *factory)
(GDestroyNotify)g_free,
(GDestroyNotify)thumbnailer_unref);
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_init (&priv->lock);
+#else
+ priv->lock = g_mutex_new ();
+#endif
priv->settings = g_settings_new ("org.mate.thumbnailers");
priv->disabled = g_settings_get_boolean (priv->settings, "disable-all");
@@ -1053,7 +1101,11 @@ mate_desktop_thumbnail_factory_can_thumbnail (MateDesktopThumbnailFactory *facto
if (!mime_type)
return FALSE;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&factory->priv->lock);
+#else
+ g_mutex_lock (factory->priv->lock);
+#endif
if (!mate_desktop_thumbnail_factory_is_disabled (factory, mime_type))
{
Thumbnailer *thumb;
@@ -1061,7 +1113,11 @@ mate_desktop_thumbnail_factory_can_thumbnail (MateDesktopThumbnailFactory *facto
thumb = g_hash_table_lookup (factory->priv->mime_types_map, mime_type);
have_script = thumbnailer_try_exec (thumb);
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&factory->priv->lock);
+#else
+ g_mutex_unlock (factory->priv->lock);
+#endif
if (have_script || mimetype_supported_by_gdk_pixbuf (mime_type))
{
@@ -1184,7 +1240,11 @@ mate_desktop_thumbnail_factory_generate_thumbnail (MateDesktopThumbnailFactory *
pixbuf = NULL;
script = NULL;
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_lock (&factory->priv->lock);
+#else
+ g_mutex_lock (factory->priv->lock);
+#endif
if (!mate_desktop_thumbnail_factory_is_disabled (factory, mime_type))
{
Thumbnailer *thumb;
@@ -1193,7 +1253,11 @@ mate_desktop_thumbnail_factory_generate_thumbnail (MateDesktopThumbnailFactory *
if (thumb)
script = g_strdup (thumb->command);
}
+#if GLIB_CHECK_VERSION(2, 31, 0)
g_mutex_unlock (&factory->priv->lock);
+#else
+ g_mutex_unlock (factory->priv->lock);
+#endif
if (script)
{