#ifdef HAVE_POPPLER_PAGE_RENDER
cairo_t *cr;
-
- surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
+
+ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
width, height);
- memset (cairo_image_surface_get_data (surface), 0xff,
- cairo_image_surface_get_height (surface) *
- cairo_image_surface_get_stride (surface));
-
cr = cairo_create (surface);
+
switch (rc->rotation) {
case 90:
cairo_translate (cr, width, 0);
cairo_scale (cr, rc->scale, rc->scale);
cairo_rotate (cr, rc->rotation * G_PI / 180.0);
poppler_page_render (page, cr);
+
+ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
+ cairo_set_source_rgb (cr, 1., 1., 1.);
+ cairo_paint (cr);
+
cairo_destroy (cr);
#else /* HAVE_POPPLER_PAGE_RENDER */
GdkPixbuf *pixbuf;
PopplerAnnotMarkup *markup;
gchar *label;
gdouble opacity;
- gboolean is_open;
PopplerRectangle poppler_rect;
markup = POPPLER_ANNOT_MARKUP (poppler_annot);
if (poppler_annot_markup_get_popup_rectangle (markup, &poppler_rect)) {
EvRectangle ev_rect;
+ gboolean is_open;
gdouble height;
poppler_page_get_size (POPPLER_PAGE (page->backend_page),
ev_rect.y1 = height - poppler_rect.y2;
ev_rect.y2 = height - poppler_rect.y1;
- g_object_set (ev_annot, "rectangle", &ev_rect, NULL);
+ is_open = poppler_annot_markup_get_popup_is_open (markup);
+
+ g_object_set (ev_annot,
+ "rectangle", &ev_rect,
+ "is_open", is_open,
+ "has_popup", TRUE,
+ NULL);
+ } else {
+ /* FIXME: Use poppler_annot_markup_has_popup() when
+ * new poppler is released.
+ */
+ g_object_set (ev_annot,
+ "has_popup", FALSE,
+ NULL);
}
label = poppler_annot_markup_get_label (markup);
opacity = poppler_annot_markup_get_opacity (markup);
- is_open = poppler_annot_markup_get_popup_is_open (markup);
g_object_set (ev_annot,
"label", label,
"opacity", opacity,
- "is_open", is_open,
NULL);
g_free (label);