Fix pasting into clipboard through CLI
This commit is contained in:
parent
3d8d805622
commit
eb4e686069
1
.gnome-screenshot.metadata
Normal file
1
.gnome-screenshot.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
b71f77c1a10eac54d2e111d87c64ab523b21ffe4 gnome-screenshot-40.0.tar.xz
|
110
0001-app-Specify-empty-filename-to-let-GNOME-Shell-store-.patch
Normal file
110
0001-app-Specify-empty-filename-to-let-GNOME-Shell-store-.patch
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
From ca1877d100e05ba1c04ae020c2543b6bd7c5e407 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
Date: Fri, 16 Feb 2024 17:55:21 +0100
|
||||||
|
Subject: [PATCH] app: Specify empty filename to let GNOME Shell store in
|
||||||
|
clipboard
|
||||||
|
|
||||||
|
---
|
||||||
|
src/screenshot-application.c | 6 ++++++
|
||||||
|
src/screenshot-backend-shell.c | 15 ++++++++++-----
|
||||||
|
src/screenshot-backend.c | 4 ++--
|
||||||
|
src/screenshot-utils.c | 4 ++++
|
||||||
|
4 files changed, 22 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/screenshot-application.c b/src/screenshot-application.c
|
||||||
|
index f7f5022..eb9cf59 100644
|
||||||
|
--- a/src/screenshot-application.c
|
||||||
|
+++ b/src/screenshot-application.c
|
||||||
|
@@ -486,6 +486,12 @@ finish_take_screenshot (ScreenshotApplication *self)
|
||||||
|
screenshot = screenshot_get_pixbuf (self->rectangle);
|
||||||
|
g_clear_pointer (&self->rectangle, g_free);
|
||||||
|
|
||||||
|
+ if (screenshot == NULL && screenshot_config->copy_to_clipboard)
|
||||||
|
+ {
|
||||||
|
+ g_application_release (G_APPLICATION (self));
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (screenshot == NULL)
|
||||||
|
{
|
||||||
|
g_critical ("Unable to capture a screenshot of any window");
|
||||||
|
diff --git a/src/screenshot-backend-shell.c b/src/screenshot-backend-shell.c
|
||||||
|
index 84c5ead..b651311 100644
|
||||||
|
--- a/src/screenshot-backend-shell.c
|
||||||
|
+++ b/src/screenshot-backend-shell.c
|
||||||
|
@@ -38,8 +38,8 @@ G_DEFINE_TYPE_WITH_CODE (ScreenshotBackendShell, screenshot_backend_shell, G_TYP
|
||||||
|
G_IMPLEMENT_INTERFACE (SCREENSHOT_TYPE_BACKEND, screenshot_backend_shell_backend_init))
|
||||||
|
|
||||||
|
static GdkPixbuf *
|
||||||
|
-screenshot_backend_shell_get_pixbuf (ScreenshotBackend *backend,
|
||||||
|
- GdkRectangle *rectangle)
|
||||||
|
+screenshot_backend_shell_get_pixbuf (ScreenshotBackend *backend,
|
||||||
|
+ GdkRectangle *rectangle)
|
||||||
|
{
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
|
g_autofree gchar *path = NULL, *filename = NULL, *tmpname = NULL;
|
||||||
|
@@ -51,8 +51,13 @@ screenshot_backend_shell_get_pixbuf (ScreenshotBackend *backend,
|
||||||
|
path = g_build_filename (g_get_user_cache_dir (), "gnome-screenshot", NULL);
|
||||||
|
g_mkdir_with_parents (path, 0700);
|
||||||
|
|
||||||
|
- tmpname = g_strdup_printf ("scr-%d.png", g_random_int ());
|
||||||
|
- filename = g_build_filename (path, tmpname, NULL);
|
||||||
|
+ if (!screenshot_config->copy_to_clipboard)
|
||||||
|
+ {
|
||||||
|
+ tmpname = g_strdup_printf ("scr-%d.png", g_random_int ());
|
||||||
|
+ filename = g_build_filename (path, tmpname, NULL);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ filename = g_strdup ("");
|
||||||
|
|
||||||
|
if (screenshot_config->take_window_shot)
|
||||||
|
{
|
||||||
|
@@ -94,7 +99,7 @@ screenshot_backend_shell_get_pixbuf (ScreenshotBackend *backend,
|
||||||
|
NULL,
|
||||||
|
&error);
|
||||||
|
|
||||||
|
- if (error == NULL)
|
||||||
|
+ if (error == NULL && *filename)
|
||||||
|
{
|
||||||
|
screenshot = gdk_pixbuf_new_from_file (filename, &error);
|
||||||
|
|
||||||
|
diff --git a/src/screenshot-backend.c b/src/screenshot-backend.c
|
||||||
|
index 73b4e5d..026bdcf 100644
|
||||||
|
--- a/src/screenshot-backend.c
|
||||||
|
+++ b/src/screenshot-backend.c
|
||||||
|
@@ -29,8 +29,8 @@ screenshot_backend_default_init (ScreenshotBackendInterface *iface)
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkPixbuf *
|
||||||
|
-screenshot_backend_get_pixbuf (ScreenshotBackend *self,
|
||||||
|
- GdkRectangle *rectangle)
|
||||||
|
+screenshot_backend_get_pixbuf (ScreenshotBackend *self,
|
||||||
|
+ GdkRectangle *rectangle)
|
||||||
|
{
|
||||||
|
ScreenshotBackendInterface *iface;
|
||||||
|
|
||||||
|
diff --git a/src/screenshot-utils.c b/src/screenshot-utils.c
|
||||||
|
index df0b6e9..87929be 100644
|
||||||
|
--- a/src/screenshot-utils.c
|
||||||
|
+++ b/src/screenshot-utils.c
|
||||||
|
@@ -27,6 +27,7 @@
|
||||||
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
|
#include "screenshot-backend-shell.h"
|
||||||
|
+#include "screenshot-config.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_X11
|
||||||
|
#include "screenshot-backend-x11.h"
|
||||||
|
@@ -47,6 +48,9 @@ screenshot_get_pixbuf (GdkRectangle *rectangle)
|
||||||
|
{
|
||||||
|
backend = screenshot_backend_shell_new ();
|
||||||
|
screenshot = screenshot_backend_get_pixbuf (backend, rectangle);
|
||||||
|
+ if (!screenshot && screenshot_config->copy_to_clipboard)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
if (!screenshot)
|
||||||
|
#ifdef HAVE_X11
|
||||||
|
g_message ("Unable to use GNOME Shell's builtin screenshot interface, "
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Name: gnome-screenshot
|
Name: gnome-screenshot
|
||||||
Version: 40.0
|
Version: 40.0
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: A screenshot utility for GNOME
|
Summary: A screenshot utility for GNOME
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -11,6 +11,8 @@ Source0: https://download.gnome.org/sources/gnome-screenshot/40/gnome-scr
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2078976
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2078976
|
||||||
Patch0: gnome-screenshot-40.0-headless-fix.patch
|
Patch0: gnome-screenshot-40.0-headless-fix.patch
|
||||||
|
|
||||||
|
Patch1: 0001-app-Specify-empty-filename-to-let-GNOME-Shell-store-.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: libappstream-glib-devel
|
BuildRequires: libappstream-glib-devel
|
||||||
@ -59,6 +61,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Screenshot.
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Apr 18 2024 Carlos Garnacho <cgarnach@redhat.com> - 40.0-5
|
||||||
|
- Fix pasting into clipboard through CLI (RHEL-25179)
|
||||||
|
|
||||||
* Wed Jul 13 2022 David King <amigadave@amigadave.com> - 40.0-4
|
* Wed Jul 13 2022 David King <amigadave@amigadave.com> - 40.0-4
|
||||||
- Fix headless mode (#2078976)
|
- Fix headless mode (#2078976)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user