4141#include "ev-debug.h"
4242
4343#include <gtk/gtk.h>
44- #if ENABLE_EPUB
45- #include <webkit2/webkit2.h>
46- #endif
4744#include <errno.h>
4845#include <glib/gstdio.h>
4946#include <glib/gi18n-lib.h>
@@ -821,80 +818,6 @@ ev_job_thumbnail_dispose (GObject *object)
821818 (* G_OBJECT_CLASS (ev_job_thumbnail_parent_class )-> dispose ) (object );
822819}
823820
824- #if ENABLE_EPUB
825-
826- static void
827- snapshot_callback (WebKitWebView * webview ,
828- GAsyncResult * results ,
829- EvJobThumbnail * job_thumb )
830- {
831- GError * error = NULL ;
832-
833- ev_document_doc_mutex_lock ();
834-
835- EvPage * page = ev_document_get_page (EV_JOB (job_thumb )-> document , job_thumb -> page );
836- job_thumb -> surface = webkit_web_view_get_snapshot_finish (webview ,
837- results ,
838- & error );
839-
840- if (error ) {
841- g_warning ("Error retrieving a snapshot: %s" , error -> message );
842- }
843-
844- EvRenderContext * rc = ev_render_context_new (page , job_thumb -> rotation , job_thumb -> scale );
845- EvPage * screenshotpage ;
846- screenshotpage = ev_page_new (job_thumb -> page );
847- screenshotpage -> backend_page = (EvBackendPage )job_thumb -> surface ;
848- screenshotpage -> backend_destroy_func = (EvBackendPageDestroyFunc )cairo_surface_destroy ;
849- ev_render_context_set_page (rc ,screenshotpage );
850-
851- job_thumb -> thumbnail = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (EV_JOB (job_thumb )-> document ),
852- rc , TRUE);
853- g_object_unref (screenshotpage );
854- g_object_unref (rc );
855-
856- ev_document_doc_mutex_unlock ();
857- ev_job_succeeded (EV_JOB (job_thumb ));
858-
859- gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (webview )));
860- }
861-
862-
863- static void
864- web_thumbnail_get_screenshot_cb (WebKitWebView * webview ,
865- WebKitLoadEvent event ,
866- EvJobThumbnail * job_thumb )
867- {
868- if (event != WEBKIT_LOAD_FINISHED || ev_job_is_failed (EV_JOB (job_thumb ))) {
869- return ;
870- }
871-
872- webkit_web_view_get_snapshot (webview ,
873- WEBKIT_SNAPSHOT_REGION_VISIBLE ,
874- WEBKIT_SNAPSHOT_OPTIONS_NONE ,
875- NULL ,
876- (GAsyncReadyCallback )snapshot_callback ,
877- g_object_ref (job_thumb ));
878- }
879-
880- static gboolean
881- webview_load_failed_cb (WebKitWebView * webview ,
882- WebKitLoadEvent event ,
883- gchar * failing_uri ,
884- gpointer error ,
885- EvJobThumbnail * job_thumb )
886- {
887- GError * e = (GError * ) error ;
888- g_warning ("Error loading data from %s: %s" , failing_uri , e -> message );
889- ev_job_failed_from_error (EV_JOB (job_thumb ), e );
890-
891- gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (webview )));
892-
893- return TRUE;
894- }
895-
896- #endif /* ENABLE_EPUB */
897-
898821static gboolean
899822ev_job_thumbnail_run (EvJob * job )
900823{
@@ -904,57 +827,22 @@ ev_job_thumbnail_run (EvJob *job)
904827 ev_debug_message (DEBUG_JOBS , "%d (%p)" , job_thumb -> page , job );
905828 ev_profiler_start (EV_PROFILE_JOBS , "%s (%p)" , EV_GET_TYPE_NAME (job ), job );
906829
907- if (job -> document -> iswebdocument ) {
908- /* Do not block the main loop */
909- if (!ev_document_doc_mutex_trylock ())
910- return TRUE;
911- } else {
912- ev_document_doc_mutex_lock ();
913- }
830+ ev_document_doc_mutex_lock ();
914831
915- page = ev_document_get_page (job -> document , job_thumb -> page );
916- ev_document_doc_mutex_unlock ();
832+ page = ev_document_get_page (job -> document , job_thumb -> page );
833+ ev_document_doc_mutex_unlock ();
917834
918- if (job -> document -> iswebdocument == TRUE ) {
919- rc = ev_render_context_new (page , 0 , job_thumb -> scale );
920- } else {
921- rc = ev_render_context_new (page , job_thumb -> rotation , job_thumb -> scale );
922- }
923- g_object_unref (page );
835+ rc = ev_render_context_new (page , job_thumb -> rotation , job_thumb -> scale );
836+ g_object_unref (page );
924837
925- #if ENABLE_EPUB
926- if (job -> document -> iswebdocument == TRUE) {
927-
928- GtkWidget * webview ;
929- GtkWidget * offscreenwindow ;
930-
931- webview = webkit_web_view_new ();
932- offscreenwindow = gtk_offscreen_window_new ();
933-
934- gtk_container_add (GTK_CONTAINER (offscreenwindow ), GTK_WIDGET (webview ));
935- gtk_window_set_default_size (GTK_WINDOW (offscreenwindow ), 800 , 1080 );
936- gtk_widget_show_all (offscreenwindow );
937-
938- g_signal_connect (WEBKIT_WEB_VIEW (webview ), "load-changed" ,
939- G_CALLBACK (web_thumbnail_get_screenshot_cb ),
940- g_object_ref (job_thumb ));
941- g_signal_connect (WEBKIT_WEB_VIEW (webview ), "load-failed" ,
942- G_CALLBACK (webview_load_failed_cb ),
943- g_object_ref (job_thumb ));
944- webkit_web_view_load_uri (WEBKIT_WEB_VIEW (webview ), (gchar * ) rc -> page -> backend_page );
945- }
946- else
947- #endif /* ENABLE_EPUB */
948- {
949- ev_document_doc_mutex_lock ();
950- job_thumb -> thumbnail = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (job -> document ),
951- rc , TRUE);
952- ev_document_doc_mutex_unlock ();
953- ev_job_succeeded (job );
954- }
955- g_object_unref (rc );
956-
957- return FALSE;
838+ ev_document_doc_mutex_lock ();
839+ job_thumb -> thumbnail = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (job -> document ),
840+ rc , TRUE);
841+ ev_document_doc_mutex_unlock ();
842+ ev_job_succeeded (job );
843+ g_object_unref (rc );
844+
845+ return FALSE;
958846}
959847
960848static void
0 commit comments