diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js index c50c4a363..11f8afa44 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); }