summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libview/ev-web-view.c12
-rw-r--r--libview/ev-web-view.h4
-rw-r--r--shell/ev-window.c44
3 files changed, 49 insertions, 11 deletions
diff --git a/libview/ev-web-view.c b/libview/ev-web-view.c
index fbfbad02..aa31751d 100644
--- a/libview/ev-web-view.c
+++ b/libview/ev-web-view.c
@@ -364,4 +364,16 @@ void
ev_web_view_select_all(EvWebView *webview)
{
webkit_web_view_select_all(WEBKIT_WEB_VIEW(webview));
+}
+
+gboolean
+ev_web_view_zoom_in(EvWebView *webview)
+{
+ webkit_web_view_zoom_in(WEBKIT_WEB_VIEW(webview));
+}
+
+gboolean
+ev_web_view_zoom_out(EvWebView *webview)
+{
+ webkit_web_view_zoom_out(WEBKIT_WEB_VIEW(webview));
} \ No newline at end of file
diff --git a/libview/ev-web-view.h b/libview/ev-web-view.h
index eaa2ef3f..ac957f5d 100644
--- a/libview/ev-web-view.h
+++ b/libview/ev-web-view.h
@@ -66,6 +66,10 @@ void ev_web_view_find_previous (EvWebView *webview);
gboolean ev_web_view_get_has_selection (EvWebView *webview);
void ev_web_view_select_all (EvWebView *webview);
+/*Zoom control*/
+gboolean ev_web_view_zoom_in (EvWebView *webview);
+gboolean ev_web_view_zoom_out (EvWebView *webview);
+
G_END_DECLS
#endif /* __EV_WEB_VIEW_H__ */
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 9232cbb6..9b9a417d 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -933,7 +933,8 @@ static void
web_view_selection_changed_cb(EvWebView *webview,
EvWindow *window)
{
-
+ ev_window_set_action_sensitive (window,"EditCopy",
+ ev_web_view_get_has_selection(webview));
}
static void
@@ -1018,6 +1019,13 @@ static void
update_document_mode (EvWindow *window, EvDocumentMode mode)
{
if (mode == EV_DOCUMENT_MODE_PRESENTATION) {
+ if (window->priv->document) {
+ if (window->priv->document->iswebdocument) {
+ ev_window_warning_message(window,_("Cannot enter presentation mode with ePub documents\
+ use fullscreen mode instead."));
+ return;
+ }
+ }
ev_window_run_presentation (window);
}
else if (mode == EV_DOCUMENT_MODE_FULL_SCREEN) {
@@ -1309,7 +1317,12 @@ setup_view_from_metadata (EvWindow *window)
/* Presentation */
if (ev_metadata_get_boolean (window->priv->metadata, "presentation", &presentation)) {
if (presentation) {
- ev_window_run_presentation (window);
+ if (window->priv->document->iswebdocument == TRUE ) {
+ return;
+ }
+ else {
+ ev_window_run_presentation (window);
+ }
}
}
}
@@ -1394,9 +1407,8 @@ ev_window_setup_document (EvWindow *ev_window)
GtkAction *action;
ev_window->priv->setup_document_idle = 0;
- if ( document->iswebdocument == FALSE ) {
- ev_window_refresh_window_thumbnail (ev_window);
- }
+ ev_window_refresh_window_thumbnail (ev_window);
+
ev_window_set_page_mode (ev_window, PAGE_MODE_DOCUMENT);
ev_window_title_set_document (ev_window->priv->title, document);
@@ -1491,7 +1503,7 @@ ev_window_set_document (EvWindow *ev_window, EvDocument *document)
} else if ( EV_WINDOW_IS_PRESENTATION (ev_window) && document->iswebdocument == TRUE )
{
ev_window_warning_message (ev_window, "%s",
- _("Presentation mode is currently not supported for Web documents."));
+ _("Presentation mode is not supported for ePub documents."));
}
if (ev_window->priv->setup_document_idle > 0)
@@ -4318,19 +4330,29 @@ static void
ev_window_cmd_view_zoom_in (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
- if ( ev_window->priv->document->iswebdocument == TRUE ) return ;
+
ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE);
- ev_view_zoom_in (EV_VIEW (ev_window->priv->view));
+ if (ev_window->priv->document->iswebdocument) {
+ ev_web_view_zoom_in(EV_WEB_VIEW(ev_window->priv->webview));
+ }
+ else {
+ ev_view_zoom_in (EV_VIEW (ev_window->priv->view));
+ }
}
static void
ev_window_cmd_view_zoom_out (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
- if ( ev_window->priv->document->iswebdocument == TRUE ) return ;
-
+
ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE);
- ev_view_zoom_out (EV_VIEW (ev_window->priv->view));
+
+ if ( ev_window->priv->document->iswebdocument) {
+ ev_web_view_zoom_out(EV_WEB_VIEW(ev_window->priv->webview));
+ }
+ else {
+ ev_view_zoom_out (EV_VIEW (ev_window->priv->view));
+ }
}
static void