From 42caeff04b337796bafae2a6f35edde00e90d904 Mon Sep 17 00:00:00 2001 From: z4ziggy <451833+z4ziggy@users.noreply.github.com> Date: Tue, 16 Jun 2020 13:32:14 +0300 Subject: [PATCH 1/2] copy to clipboard --- src/image_viewer.c | 7 +++++++ src/image_viewer.h | 4 ++++ src/main_window.c | 25 +++++++++++++++++++++++++ src/main_window_ui.xml | 2 ++ 4 files changed, 38 insertions(+) diff --git a/src/image_viewer.c b/src/image_viewer.c index ebacd730..4ec1add5 100644 --- a/src/image_viewer.c +++ b/src/image_viewer.c @@ -1901,6 +1901,13 @@ rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale) FALSE); } +GdkPixbuf * +rstto_image_viewer_get_pixbuf ( + RsttoImageViewer *viewer) +{ + return viewer->priv->pixbuf; +} + gdouble rstto_image_viewer_get_scale (RsttoImageViewer *viewer) { diff --git a/src/image_viewer.h b/src/image_viewer.h index 7ce06151..8d13d774 100644 --- a/src/image_viewer.h +++ b/src/image_viewer.h @@ -89,6 +89,10 @@ rstto_image_viewer_set_scale ( RsttoImageViewer *viewer, gdouble scale); +GdkPixbuf * +rstto_image_viewer_get_pixbuf ( + RsttoImageViewer *viewer); + gdouble rstto_image_viewer_get_scale ( RsttoImageViewer *viewer); diff --git a/src/main_window.c b/src/main_window.c index 7978f795..2f24969d 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -300,6 +300,11 @@ cb_rstto_main_window_preferences ( GtkWidget *widget, RsttoMainWindow *window); +static void +copy_image ( + GtkWidget *widget, + RsttoMainWindow *window); + static void cb_rstto_main_window_clear_private_data ( GtkWidget *widget, @@ -445,6 +450,12 @@ static GtkActionEntry action_entries[] = NULL, NULL, NULL, }, + { "copy-image", + NULL, + N_ ("_Copy image to clipboard"), + "C", + NULL, + G_CALLBACK (copy_image), }, { "open-with-menu", NULL, N_ ("_Open with"), @@ -4456,6 +4467,20 @@ rstto_main_window_launch_editor_chooser ( g_list_free (files); } + +static void +copy_image ( + GtkWidget *widget, + RsttoMainWindow *window) +{ + GdkPixbuf *pixbuf; + RsttoImageViewer *viewer = RSTTO_IMAGE_VIEWER(window->priv->image_viewer); + pixbuf = rstto_image_viewer_get_pixbuf(viewer); + gtk_clipboard_set_image(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), pixbuf); + //gtk_clipboard_set_image(gtk_clipboard_get(GDK_SELECTION_PRIMARY), pixbuf); + g_object_unref (pixbuf); +} + static void cb_rstto_main_window_clear_private_data ( GtkWidget *widget, diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml index 600da606..242946da 100644 --- a/src/main_window_ui.xml +++ b/src/main_window_ui.xml @@ -16,6 +16,8 @@ + + -- GitLab From c0dbaf6dff0f4504a1e2345a5ffcb60c04a1cf2c Mon Sep 17 00:00:00 2001 From: z4ziggy <451833+z4ziggy@users.noreply.github.com> Date: Tue, 7 Jul 2020 16:47:44 +0300 Subject: [PATCH 2/2] copy image - add missing g_object_ref --- src/image_viewer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/image_viewer.c b/src/image_viewer.c index 4ec1add5..4c818718 100644 --- a/src/image_viewer.c +++ b/src/image_viewer.c @@ -1905,6 +1905,7 @@ GdkPixbuf * rstto_image_viewer_get_pixbuf ( RsttoImageViewer *viewer) { + g_object_ref(viewer->priv->pixbuf); return viewer->priv->pixbuf; } -- GitLab