diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ev-view.c | 8 | ||||
-rw-r--r-- | shell/ev-window.c | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c index 5678fc2..b615b6c 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -620,6 +620,10 @@ ev_view_copy (EvView *ev_view) GtkClipboard *clipboard; char *text; + if (!ev_document_can_get_text (ev_view->document)) { + return; + } + g_mutex_lock (EV_DOC_MUTEX); text = ev_document_get_text (ev_view->document, ev_view->current_page, @@ -641,6 +645,10 @@ ev_view_primary_get_cb (GtkClipboard *clipboard, EvView *ev_view = EV_VIEW (data); char *text; + if (!ev_document_can_get_text (ev_view->document)) { + return; + } + g_mutex_lock (EV_DOC_MUTEX); text = ev_document_get_text (ev_view->document, ev_view->current_page, diff --git a/shell/ev-window.c b/shell/ev-window.c index 734846f..4d03050 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -183,6 +183,7 @@ update_action_sensitivity (EvWindow *ev_window) EvDocument *document; EvWindowPageMode page_mode; EvView *view; + gboolean sensitive; document = ev_window->priv->document; page_mode = ev_window->priv->page_mode; @@ -195,8 +196,10 @@ update_action_sensitivity (EvWindow *ev_window) /* "FileCloseWindow": always sensitive */ /* Edit menu */ - set_action_sensitive (ev_window, "EditCopy", document!=NULL); - set_action_sensitive (ev_window, "EditSelectAll", document!=NULL); + + sensitive = document && ev_document_can_get_text (document); + set_action_sensitive (ev_window, "EditCopy", sensitive); + set_action_sensitive (ev_window, "EditSelectAll", sensitive); if (document) set_action_sensitive (ev_window, "EditFind", EV_IS_DOCUMENT_FIND (document)); |