summaryrefslogtreecommitdiff
path: root/libview
diff options
context:
space:
mode:
authorMickael Albertus <[email protected]>2018-02-03 11:20:16 +0100
committerraveit65 <[email protected]>2018-03-16 17:51:25 +0100
commitea3dfb136d28635f874a5a2e3955da7f6e80d8d8 (patch)
tree571f8dd8cc37d61bb27ec57f2e98bcce8a6c12ca /libview
parente79d2665e8a4c80d7650e96906545579cb1bf930 (diff)
downloadatril-ea3dfb136d28635f874a5a2e3955da7f6e80d8d8.tar.bz2
atril-ea3dfb136d28635f874a5a2e3955da7f6e80d8d8.tar.xz
epub: fix loading epub thumbnails
origin commit: https://github.com/linuxmint/xreader/commit/6ed0ee1 Note: origin commit causes some serious build warnings, ......fixed.
Diffstat (limited to 'libview')
-rw-r--r--libview/ev-jobs.c47
1 files changed, 23 insertions, 24 deletions
diff --git a/libview/ev-jobs.c b/libview/ev-jobs.c
index e350376b..0fd2554f 100644
--- a/libview/ev-jobs.c
+++ b/libview/ev-jobs.c
@@ -92,11 +92,6 @@ enum {
FIND_LAST_SIGNAL
};
-#if ENABLE_EPUB
-static GtkWidget* webview;
-static GtkWidget* offscreenwindow;
-#endif
-
static guint job_signals[LAST_SIGNAL] = { 0 };
static guint job_fonts_signals[FONTS_LAST_SIGNAL] = { 0 };
static guint job_find_signals[FIND_LAST_SIGNAL] = { 0 };
@@ -877,8 +872,12 @@ snapshot_callback(WebKitWebView *webview,
ev_document_doc_mutex_unlock ();
ev_job_succeeded (EV_JOB(job_thumb));
+
+ gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (webview)));
}
+#endif /* ENABLE_EPUB */
+
static void
web_thumbnail_get_screenshot_cb (WebKitWebView *webview,
WebKitLoadEvent event,
@@ -906,9 +905,10 @@ webview_load_failed_cb (WebKitWebView *webview,
GError *e = (GError *) error;
g_warning ("Error loading data from %s: %s", failing_uri, e->message);
ev_job_failed_from_error (EV_JOB(job_thumb), e);
+
+ gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (webview)));
return TRUE;
}
-#endif /* ENABLE_EPUB */
static gboolean
ev_job_thumbnail_run (EvJob *job)
@@ -939,24 +939,23 @@ ev_job_thumbnail_run (EvJob *job)
#if ENABLE_EPUB
if (job->document->iswebdocument == TRUE) {
- if (!webview) {
- webview = webkit_web_view_new();
- g_signal_connect(WEBKIT_WEB_VIEW(webview),"load-changed",
- G_CALLBACK(web_thumbnail_get_screenshot_cb),
- g_object_ref (job_thumb));
- g_signal_connect(WEBKIT_WEB_VIEW(webview),"load-failed",
- G_CALLBACK(webview_load_failed_cb),
- g_object_ref (job_thumb));
- }
-
- if (!offscreenwindow) {
- offscreenwindow = gtk_offscreen_window_new();
- gtk_container_add(GTK_CONTAINER(offscreenwindow),GTK_WIDGET(webview));
- gtk_window_set_default_size (GTK_WINDOW(offscreenwindow),800,1080);
- gtk_widget_show_all(offscreenwindow);
- }
-
- webkit_web_view_load_uri(WEBKIT_WEB_VIEW(webview),(gchar*)rc->page->backend_page);
+ GtkWidget *webview;
+ GtkWidget *offscreenwindow;
+
+ webview = webkit_web_view_new ();
+ offscreenwindow = gtk_offscreen_window_new ();
+
+ gtk_container_add (GTK_CONTAINER(offscreenwindow), GTK_WIDGET (webview));
+ gtk_window_set_default_size (GTK_WINDOW(offscreenwindow), 800, 1080);
+ gtk_widget_show_all (offscreenwindow);
+
+ g_signal_connect (WEBKIT_WEB_VIEW (webview), "load-changed",
+ G_CALLBACK (web_thumbnail_get_screenshot_cb),
+ g_object_ref (job_thumb));
+ g_signal_connect (WEBKIT_WEB_VIEW(webview), "load-failed",
+ G_CALLBACK(webview_load_failed_cb),
+ g_object_ref (job_thumb));
+ webkit_web_view_load_uri (WEBKIT_WEB_VIEW (webview), (gchar*) rc->page->backend_page);
}
else
#endif /* ENABLE_EPUB */