summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-01-12 14:57:05 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-12 15:03:56 +0100
commit64a01ca17857ea8e90b4b0476bd85a69dd4014bb (patch)
treea318d557fb485780749745b6e0818e62813efbbb /libreofficekit
parent5865ab6bd27425912e2752020a966e2aac3279e5 (diff)
libreofficekit: we don't need our own gdk_threads_add_idle() version after all
Change-Id: I9d05a3971bd0dd14654d0b0e2a80a263d360505b
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/source/gtk/lokdocview.c74
1 files changed, 13 insertions, 61 deletions
diff --git a/libreofficekit/source/gtk/lokdocview.c b/libreofficekit/source/gtk/lokdocview.c
index d9d8e41bbbf2..e34936ba4227 100644
--- a/libreofficekit/source/gtk/lokdocview.c
+++ b/libreofficekit/source/gtk/lokdocview.c
@@ -18,67 +18,6 @@
#define G_SOURCE_REMOVE FALSE
#endif
-/* Before glib 2.12. */
-#ifndef HAVE_GDK_THREADS_ADD_API
-typedef struct
-{
- GSourceFunc func;
- gpointer data;
- GDestroyNotify destroy;
-} GdkThreadsDispatch;
-
-static gboolean
-gdk_threads_dispatch (gpointer data)
-{
- GdkThreadsDispatch *dispatch = data;
- gboolean ret = FALSE;
-
- gdk_threads_enter ();
- ret = dispatch->func (dispatch->data);
- gdk_threads_leave ();
-
- return ret;
-}
-
-static void
-gdk_threads_dispatch_free (gpointer data)
-{
- GdkThreadsDispatch *dispatch = data;
-
- if (dispatch->destroy && dispatch->data)
- dispatch->destroy (dispatch->data);
-
- g_slice_free (GdkThreadsDispatch, data);
-}
-
-guint
-gdk_threads_add_idle_full (gint priority,
- GSourceFunc function,
- gpointer data,
- GDestroyNotify notify)
-{
- GdkThreadsDispatch *dispatch;
-
- g_return_val_if_fail (function != NULL, 0);
-
- dispatch = g_slice_new (GdkThreadsDispatch);
- dispatch->func = function;
- dispatch->data = data;
- dispatch->destroy = notify;
-
- return g_idle_add_full (priority, gdk_threads_dispatch, dispatch,
- gdk_threads_dispatch_free);
-}
-
-guint
-gdk_threads_add_idle (GSourceFunc function,
- gpointer data)
-{
- return gdk_threads_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
- function, data, NULL);
-}
-#endif /* HAVE_GDK_THREADS_ADD_API */
-
static void lok_docview_class_init( LOKDocViewClass* pClass );
static void lok_docview_init( LOKDocView* pDocView );
@@ -218,7 +157,16 @@ void renderDocument( LOKDocView* pDocView )
static gboolean lok_docview_callback(gpointer pData)
{
LOKDocView* pDocView = pData;
+
+#if ! GTK_CHECK_VERSION(2,12,0)
+ GDK_THREADS_ENTER();
+#endif
+
renderDocument(pDocView);
+
+#if ! GTK_CHECK_VERSION(2,12,0)
+ GDK_THREADS_LEAVE();
+#endif
return G_SOURCE_REMOVE;
}
@@ -232,7 +180,11 @@ static void lok_docview_callback_worker(int nType, const char* pPayload, void* p
case LOK_CALLBACK_INVALIDATE_TILES:
// TODO for now just always render the document.
(void)pPayload;
+#if GTK_CHECK_VERSION(2,12,0)
gdk_threads_add_idle(lok_docview_callback, pDocView);
+#else
+ g_add_idle(lok_docview_callback, pDocView);
+#endif
break;
default:
break;