dbusServices/screencast: Add recordings to recent items
This is useful functionality that got lost when replacing the built-in recorder with an external screencast service; bring it back. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3171
This commit is contained in:
parent
b2d6c11ec3
commit
386d25e6f8
@ -1,7 +1,9 @@
|
|||||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
/* exported ScreencastService */
|
/* exported ScreencastService */
|
||||||
|
|
||||||
const { Gio, GLib, Gst } = imports.gi;
|
imports.gi.versions.Gtk = '3.0';
|
||||||
|
|
||||||
|
const { Gio, GLib, Gst, Gtk } = imports.gi;
|
||||||
|
|
||||||
const { loadInterfaceXML, loadSubInterfaceXML } = imports.misc.fileUtils;
|
const { loadInterfaceXML, loadSubInterfaceXML } = imports.misc.fileUtils;
|
||||||
const { ServiceImplementation } = imports.dbusService;
|
const { ServiceImplementation } = imports.dbusService;
|
||||||
@ -78,6 +80,11 @@ var Recorder = class {
|
|||||||
this._drawCursor = options['draw-cursor'];
|
this._drawCursor = options['draw-cursor'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_addRecentItem() {
|
||||||
|
const file = Gio.File.new_for_path(this._filePath);
|
||||||
|
Gtk.RecentManager.get_default().add_item(file.get_uri());
|
||||||
|
}
|
||||||
|
|
||||||
_watchSender(sender) {
|
_watchSender(sender) {
|
||||||
this._nameWatchId = this._dbusConnection.watch_name(
|
this._nameWatchId = this._dbusConnection.watch_name(
|
||||||
sender,
|
sender,
|
||||||
@ -180,6 +187,7 @@ var Recorder = class {
|
|||||||
switch (message.type) {
|
switch (message.type) {
|
||||||
case Gst.MessageType.EOS:
|
case Gst.MessageType.EOS:
|
||||||
this._pipeline.set_state(Gst.State.NULL);
|
this._pipeline.set_state(Gst.State.NULL);
|
||||||
|
this._addRecentItem();
|
||||||
|
|
||||||
switch (this._pipelineState) {
|
switch (this._pipelineState) {
|
||||||
case PipelineState.FLUSHING:
|
case PipelineState.FLUSHING:
|
||||||
@ -238,6 +246,7 @@ var ScreencastService = class extends ServiceImplementation {
|
|||||||
super(ScreencastIface, '/org/gnome/Shell/Screencast');
|
super(ScreencastIface, '/org/gnome/Shell/Screencast');
|
||||||
|
|
||||||
Gst.init(null);
|
Gst.init(null);
|
||||||
|
Gtk.init(null);
|
||||||
|
|
||||||
this._recorders = new Map();
|
this._recorders = new Map();
|
||||||
this._senders = new Map();
|
this._senders = new Map();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user