summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorrootavish <[email protected]>2014-07-10 13:50:37 +0530
committerrootavish <[email protected]>2014-07-10 13:50:37 +0530
commit423af80ad421a8a19e1c4be0c6851dff845a0f6c (patch)
treea5f5258fcfd1850f36d1238c7162146f3c186a82 /shell
parentdf43418e209ae9c98844185f789c63769ae9b3a2 (diff)
downloadatril-423af80ad421a8a19e1c4be0c6851dff845a0f6c.tar.bz2
atril-423af80ad421a8a19e1c4be0c6851dff845a0f6c.tar.xz
Files for EvWebView, thumbnails possible with GTK+-2.0
My last commit was supposed to have ev-web-view.c and ev-web-view.h however due to some reason I missed them last time, so here they are now. i am able to achieve thumbnails for my epub however these are of absurdly large size. Still struggling to get the webview done due to thread problems that I am encountering.
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-convert-metadata.c4
-rw-r--r--shell/ev-window.c39
2 files changed, 26 insertions, 17 deletions
diff --git a/shell/ev-convert-metadata.c b/shell/ev-convert-metadata.c
index 5664253b..72431dd5 100644
--- a/shell/ev-convert-metadata.c
+++ b/shell/ev-convert-metadata.c
@@ -26,7 +26,7 @@
#include <glib/gi18n.h>
#include <string.h>
#include <libxml/tree.h>
-
+#include <X11/Xlib.h>
#define EV_METADATA_NAMESPACE "metadata::atril"
typedef struct {
@@ -294,7 +294,7 @@ main (gint argc, gchar **argv)
g_printerr ("%s\n", "Usage: atril-convert-metadata FILE");
return 1;
}
-
+ XInitThreads();
gtk_init (&argc, &argv);
if (!convert_metadata_file (argv[1]))
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 4f2c1ac2..900d9155 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -471,7 +471,9 @@ ev_window_setup_action_sensitivity (EvWindow *ev_window)
static void
ev_window_update_actions (EvWindow *ev_window)
{
- EvView *view = EV_VIEW (ev_window->priv->view);
+ EvWebView *webview = NULL;
+ EvView *view = NULL;
+
int n_pages = 0, page = -1;
gboolean has_pages = FALSE;
gboolean presentation_mode;
@@ -483,13 +485,20 @@ ev_window_update_actions (EvWindow *ev_window)
n_pages = ev_document_get_n_pages (ev_window->priv->document);
has_pages = n_pages > 0;
}
+
+ if (ev_window->priv->document && ev_window->priv->document->iswebdocument == TRUE ) {
+ webview = EV_WEB_VIEW(ev_window->priv->webview);
+ } else {
+ view = EV_VIEW (ev_window->priv->view);
+ }
can_find_in_page = (ev_window->priv->find_job &&
ev_job_find_has_results (EV_JOB_FIND (ev_window->priv->find_job)));
-
- ev_window_set_action_sensitive (ev_window, "EditCopy",
- has_pages &&
- ev_view_get_has_selection (view));
+ if (view) {
+ ev_window_set_action_sensitive (ev_window, "EditCopy",
+ has_pages &&
+ ev_view_get_has_selection (view));
+ }
ev_window_set_action_sensitive (ev_window, "EditFindNext",
has_pages && can_find_in_page);
ev_window_set_action_sensitive (ev_window, "EditFindPrevious",
@@ -1409,7 +1418,7 @@ ev_window_setup_document (EvWindow *ev_window)
if (EV_WINDOW_IS_PRESENTATION (ev_window) && document->iswebdocument == FALSE)
gtk_widget_grab_focus (ev_window->priv->presentation_view);
else {
- if ( gtk_widget_get_parent(ev_window->priv->view) != NULL )
+ if ( document->iswebdocument == FALSE )
gtk_widget_grab_focus (ev_window->priv->view);
else
gtk_widget_grab_focus (ev_window->priv->webview);
@@ -5510,19 +5519,19 @@ ev_window_key_press_event (GtkWidget *widget,
* It's needed to be able to type in
* annot popups windows
*/
- GtkWidget* parent = gtk_widget_get_parent(priv->view);
- if (priv->view && parent != NULL) {
- g_object_ref (priv->view);
- if (gtk_widget_is_sensitive (priv->view))
- handled = gtk_widget_event (priv->view, (GdkEvent*) event);
- g_object_unref (priv->view);
- }
-
- else if ( priv->webview && (parent=gtk_widget_get_parent(priv->webview) ) != NULL) {
+ if (priv->webview && priv->document && priv->document->iswebdocument == TRUE) {
g_object_ref (priv->webview);
if (gtk_widget_is_sensitive (priv->webview))
handled = gtk_widget_event (priv->webview, (GdkEvent*) event);
g_object_unref (priv->webview);
+
+ }
+
+ else if ( priv->view) {
+ g_object_ref (priv->view);
+ if (gtk_widget_is_sensitive (priv->view))
+ handled = gtk_widget_event (priv->view, (GdkEvent*) event);
+ g_object_unref (priv->view);
}
if (!handled && !EV_WINDOW_IS_PRESENTATION (ev_window)) {