From 8195f1f7c4693838e73f23ab95ba60707faf6446 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 05 Jan 2005 16:18:13 +0000 Subject: Implement Edit->Copy 2005-01-05 Marco Pesenti Gritti * shell/ev-view.c: (ev_view_copy): * shell/ev-view.h: * shell/ev-window.c: (ev_window_cmd_edit_copy): Implement Edit->Copy --- diff --git a/ChangeLog b/ChangeLog index 5ea38fb..797cce4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2005-01-05 Marco Pesenti Gritti + * shell/ev-view.c: (ev_view_copy): + * shell/ev-view.h: + * shell/ev-window.c: (ev_window_cmd_edit_copy): + + Implement Edit->Copy + +2005-01-05 Marco Pesenti Gritti + * backend/ev-document.c: (ev_document_get_text): * backend/ev-document.h: * pdf/xpdf/pdf-document.cc: diff --git a/shell/ev-view.c b/shell/ev-view.c index bd50b38..9936ce1 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -421,6 +421,19 @@ ev_view_expose_event (GtkWidget *widget, return FALSE; } +void +ev_view_copy (EvView *ev_view) +{ + GtkClipboard *clipboard; + char *text; + + text = ev_document_get_text (ev_view->document, &ev_view->selection); + clipboard = gtk_widget_get_clipboard (GTK_WIDGET (ev_view), + GDK_SELECTION_CLIPBOARD); + gtk_clipboard_set_text (clipboard, text, -1); + g_free (text); +} + static void ev_view_primary_get_cb (GtkClipboard *clipboard, GtkSelectionData *selection_data, diff --git a/shell/ev-view.h b/shell/ev-view.h index 600c7b9..cddd274 100644 --- a/shell/ev-view.h +++ b/shell/ev-view.h @@ -34,20 +34,19 @@ G_BEGIN_DECLS typedef struct _EvView EvView; typedef struct _EvViewClass EvViewClass; -GType ev_view_get_type (void) G_GNUC_CONST; -GtkWidget* ev_view_new (void); - -void ev_view_set_document (EvView *view, - EvDocument *document); -void ev_view_set_page (EvView *view, - int page); -int ev_view_get_page (EvView *view); - -void ev_view_zoom_in (EvView *view); -void ev_view_zoom_out (EvView *view); -void ev_view_normal_size (EvView *view); -void ev_view_best_fit (EvView *view); -void ev_view_fit_width (EvView *view); +GType ev_view_get_type (void) G_GNUC_CONST; +GtkWidget* ev_view_new (void); +void ev_view_copy (EvView *view); +void ev_view_set_document (EvView *view, + EvDocument *document); +void ev_view_set_page (EvView *view, + int page); +int ev_view_get_page (EvView *view); +void ev_view_zoom_in (EvView *view); +void ev_view_zoom_out (EvView *view); +void ev_view_normal_size (EvView *view); +void ev_view_best_fit (EvView *view); +void ev_view_fit_width (EvView *view); char* ev_view_get_find_status_message (EvView *view); diff --git a/shell/ev-window.c b/shell/ev-window.c index 5b1375c..e110e1d 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -607,7 +607,7 @@ ev_window_cmd_edit_copy (GtkAction *action, EvWindow *ev_window) { g_return_if_fail (EV_IS_WINDOW (ev_window)); - /* FIXME */ + ev_view_copy (EV_VIEW (ev_window->priv->view)); } static void -- cgit v0.9.1