[gnome-shell/wip/carlosg/screenshots-to-clipboard: 2/2] screenshot: Allow saving to clipboard
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/carlosg/screenshots-to-clipboard: 2/2] screenshot: Allow saving to clipboard
- Date: Wed, 6 Nov 2019 22:40:04 +0000 (UTC)
commit 884d53acdbb6aacab35af83400e876224a81a619
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Nov 6 00:48:25 2019 +0100
screenshot: Allow saving to clipboard
If no target file is specified (i.e. filename is an empty string), the
screenshot will be stored on the clipboard instead.
https://gitlab.gnome.org/GNOME/mutter/issues/789
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/810
js/ui/screenshot.js | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index c50c4a3639..11f8afa445 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -86,6 +86,9 @@ var ScreenshotService = class {
}
_createStream(filename) {
+ if (filename == '')
+ return [Gio.MemoryOutputStream.new_resizable(), null];
+
if (GLib.path_is_absolute(filename)) {
try {
let file = Gio.File.new_for_path(filename);
@@ -123,7 +126,15 @@ var ScreenshotService = class {
stream.close(null);
- let filenameUsed = file.get_path();
+ let filenameUsed = '';
+ if (file) {
+ filenameUsed = file.get_path();
+ } else {
+ let bytes = stream.steal_as_bytes();
+ let clipboard = St.Clipboard.get_default();
+ clipboard.set_content(St.ClipboardType.CLIPBOARD, 'image/png', bytes);
+ }
+
let retval = GLib.Variant.new('(bs)', [result, filenameUsed]);
invocation.return_value(retval);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]