From 3c363439f022d352edceb187fd824bc4f2dda65b Mon Sep 17 00:00:00 2001 From: Hrvoje Niksic Date: Mon, 28 Dec 2020 23:37:58 +0100 Subject: [PATCH] New pop-up menu action "Copy image to clipboard" --- src/layout_image.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/layout_image.c b/src/layout_image.c index cc61feff..8983091b 100644 --- a/src/layout_image.c +++ b/src/layout_image.c @@ -583,6 +583,17 @@ static void li_pop_menu_copy_path_unquoted_cb(GtkWidget *widget, gpointer data) file_util_copy_path_to_clipboard(layout_image_get_fd(lw), FALSE); } +static void li_pop_menu_copy_image_cb(GtkWidget *widget, gpointer data) +{ + LayoutWindow *lw = data; + ImageWindow *imd = lw->image; + + GdkPixbuf *pixbuf; + pixbuf = image_get_pixbuf(imd); + if (!pixbuf) return; + gtk_clipboard_set_image(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), pixbuf); +} + static void li_pop_menu_move_cb(GtkWidget *widget, gpointer data) { LayoutWindow *lw = data; @@ -773,6 +784,7 @@ static GtkWidget *layout_image_pop_menu(LayoutWindow *lw) if (!path) gtk_widget_set_sensitive(item, FALSE); item = menu_item_add(menu, _("_Copy path"), G_CALLBACK(li_pop_menu_copy_path_cb), lw); item = menu_item_add(menu, _("_Copy path unquoted"), G_CALLBACK(li_pop_menu_copy_path_unquoted_cb), lw); + item = menu_item_add(menu, _("Copy _image"), G_CALLBACK(li_pop_menu_copy_image_cb), lw); if (!path) gtk_widget_set_sensitive(item, FALSE); menu_item_add_divider(menu); -- 2.20.1