remoteAccess: Ignore all but the screen record handles on X11

We still want to show the red dot when recording the screen on X11, so
only drop the "screen-is-shared" handles when using the X11 session.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3279

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1466
This commit is contained in:
Jonas Ådahl 2020-10-13 16:28:51 +02:00 committed by Florian Müllner
parent 6c7ab4f00d
commit a0e87b53ff

View File

@ -16,13 +16,6 @@ class RemoteAccessApplet extends PanelMenu.SystemIndicator {
if (!controller) if (!controller)
return; return;
// We can't possibly know about all types of screen sharing on X11, so
// showing these controls on X11 might give a false sense of security.
// Thus, only enable these controls when using Wayland, where we are
// in control of sharing.
if (!Meta.is_wayland_compositor())
return;
this._handles = new Set(); this._handles = new Set();
this._sharedIndicator = null; this._sharedIndicator = null;
this._recordingIndicator = null; this._recordingIndicator = null;
@ -85,6 +78,16 @@ class RemoteAccessApplet extends PanelMenu.SystemIndicator {
} }
_onNewHandle(handle) { _onNewHandle(handle) {
// We can't possibly know about all types of screen sharing on X11, so
// showing these controls on X11 might give a false sense of security.
// Thus, only enable these controls when using Wayland, where we are
// in control of sharing.
//
// We still want to show screen recordings though, to indicate when
// the built in screen recorder is active, no matter the session type.
if (!Meta.is_wayland_compositor() && !handle.is_recording)
return;
this._handles.add(handle); this._handles.add(handle);
handle.connect('stopped', this._onStopped.bind(this)); handle.connect('stopped', this._onStopped.bind(this));