From 8e126907002877574ec86fcbd184e56dc8f74683 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Sat, 19 Jan 2008 17:19:42 +0000 Subject: Do not render images when rendering the page but on demand. It reduces the 2008-01-19 Carlos Garcia Campos * configure.ac: * backend/pdf/ev-poppler.cc: (pdf_document_images_get_image_mapping), (pdf_document_images_get_image), (pdf_document_document_images_iface_init): * libdocument/ev-document-images.[ch]: (ev_document_images_get_image_mapping), (ev_document_images_get_image): * libdocument/ev-image.[ch]: (ev_image_new), (ev_image_get_page), (ev_image_get_id), (ev_image_save_tmp): * shell/ev-jobs.c: (ev_job_render_run): * shell/ev-view.c: (ev_view_drag_data_get): * shell/ev-window.c: (image_save_dialog_response_cb), (ev_view_popup_cmd_copy_image): Do not render images when rendering the page but on demand. It reduces the memory comsumption. svn path=/trunk/; revision=2835 --- (limited to 'shell/ev-view.c') diff --git a/shell/ev-view.c b/shell/ev-view.c index cb2d026..cb66a2a 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -2795,16 +2795,28 @@ ev_view_drag_data_get (GtkWidget *widget, if (view->image_dnd_info.image) { GdkPixbuf *pixbuf; - pixbuf = ev_image_get_pixbuf (view->image_dnd_info.image); + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document), + view->image_dnd_info.image); + ev_document_doc_mutex_unlock (); + gtk_selection_data_set_pixbuf (selection_data, pixbuf); + g_object_unref (pixbuf); } break; case TARGET_DND_URI: if (view->image_dnd_info.image) { + GdkPixbuf *pixbuf; const gchar *tmp_uri; gchar **uris; - tmp_uri = ev_image_save_tmp (view->image_dnd_info.image); + ev_document_doc_mutex_lock (); + pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document), + view->image_dnd_info.image); + ev_document_doc_mutex_unlock (); + + tmp_uri = ev_image_save_tmp (view->image_dnd_info.image, pixbuf); + g_object_unref (pixbuf); uris = g_new0 (gchar *, 2); uris[0] = (gchar *)tmp_uri; -- cgit v0.9.1