]> 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 2629a47fd54eebff7429a3a06f882b96cb4c42c4..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 ())
@@ -56,6 +54,11 @@ typedef enum
        EV_DOCUMENT_ERROR_ENCRYPTED
 } EvDocumentError;
 
+typedef struct {
+       double x;
+       double y;
+} EvPoint;
+
 typedef struct {
        double x1;
        double y1;
@@ -85,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);
@@ -94,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,
@@ -116,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);