[Libreoffice-commits] core.git: libreofficekit/source

Miklos Vajna vmiklos at collabora.co.uk
Mon Jan 12 06:04:33 PST 2015


 libreofficekit/source/gtk/lokdocview.c |   74 +++++----------------------------
 1 file changed, 13 insertions(+), 61 deletions(-)

New commits:
commit 64a01ca17857ea8e90b4b0476bd85a69dd4014bb
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Jan 12 14:57:05 2015 +0100

    libreofficekit: we don't need our own gdk_threads_add_idle() version after all
    
    Change-Id: I9d05a3971bd0dd14654d0b0e2a80a263d360505b

diff --git a/libreofficekit/source/gtk/lokdocview.c b/libreofficekit/source/gtk/lokdocview.c
index d9d8e41..e34936b 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;


More information about the Libreoffice-commits mailing list