]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-document.h
Use an specific lock for FontConfig. Hopefully it fixes some crashes
[evince.git] / backend / ev-document.h
index 2cea42f373ad5f0c83299e82f292b2ed889f9e96..828ca256b799c1a90c3e22e46400d7dfc099a1bd 100644 (file)
@@ -44,8 +44,6 @@ typedef struct _EvDocumentIface   EvDocumentIface;
 typedef struct _EvPageCache       EvPageCache;
 typedef struct _EvPageCacheClass  EvPageCacheClass;
 
-
-
 #define EV_DOCUMENT_ERROR ev_document_error_quark ()
 #define EV_DOC_MUTEX_LOCK (ev_document_doc_mutex_lock ())
 #define EV_DOC_MUTEX_UNLOCK (ev_document_doc_mutex_unlock ())
@@ -90,8 +88,8 @@ struct _EvDocumentIface
        char           * (* get_text)        (EvDocument   *document,
                                              int           page,
                                              EvRectangle  *rect);
-       GList          * (* get_links)       (EvDocument   *document,
-                                             int           page);
+       gboolean         (* has_attachments) (EvDocument   *document);
+       GList          * (* get_attachments) (EvDocument   *document);
        GdkPixbuf      * (* render_pixbuf)   (EvDocument      *document,
                                              EvRenderContext *rc);
        EvDocumentInfo * (* get_info)        (EvDocument   *document);
@@ -99,10 +97,17 @@ struct _EvDocumentIface
 
 GType          ev_document_get_type       (void);
 GQuark         ev_document_error_quark    (void);
-GMutex        *ev_document_get_doc_mutex  (void);
-void            ev_document_doc_mutex_lock (void);
+
+/* Document mutex */
+GMutex        *ev_document_get_doc_mutex    (void);
+void            ev_document_doc_mutex_lock   (void);
 void            ev_document_doc_mutex_unlock (void);
 
+/* FontConfig mutex */
+GMutex         *ev_document_fc_doc_mutex    (void);
+void            ev_document_fc_mutex_lock   (void);
+void            ev_document_fc_mutex_unlock (void);
+
 EvDocumentInfo *ev_document_get_info       (EvDocument     *document);
 gboolean       ev_document_load            (EvDocument     *document,
                                             const char     *uri,
@@ -121,8 +126,8 @@ gboolean    ev_document_can_get_text    (EvDocument     *document);
 char          *ev_document_get_text        (EvDocument     *document,
                                             int             page,
                                             EvRectangle    *rect);
-GList         *ev_document_get_links       (EvDocument     *document,
-                                            int             page);
+gboolean        ev_document_has_attachments (EvDocument     *document);
+GList          *ev_document_get_attachments (EvDocument     *document);
 GdkPixbuf      *ev_document_render_pixbuf   (EvDocument     *document,
                                             EvRenderContext *rc);