[gnome-shell] screenshot: Disable screencasts when locked
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] screenshot: Disable screencasts when locked
- Date: Mon, 22 Aug 2022 14:18:42 +0000 (UTC)
commit aa7bc4cfa387735bb91247e644d950357c7af0b6
Author: Florian Müllner <fmuellner gnome org>
Date: Sun Aug 21 20:59:25 2022 +0200
screenshot: Disable screencasts when locked
It is currently not possible to bring up the screenshot UI while
locked, but that is about to change.
We still don't want screencasts in that case, because they are
much easier to abuse for filling up someone else's disk.
That restriction is enforced by inhibiting remote access in the
backend, so trying to create a screencast session will fail anyway.
Still, not offering an action that is unavailable is better than
having it fail silently, so do exactly that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2439>
data/theme/gnome-shell-sass/widgets/_screenshot.scss | 1 +
js/ui/screenshot.js | 11 +++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/data/theme/gnome-shell-sass/widgets/_screenshot.scss
b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
index f7fa3da2be..150f273b42 100644
--- a/data/theme/gnome-shell-sass/widgets/_screenshot.scss
+++ b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
@@ -98,6 +98,7 @@ $screenshot_ui_button_red: $error_color;
&:hover, &:focus { background-color: lighten($osd_bg_color, 10%);}
&:active { background-color: lighten($active_bg_color,5%);}
&:checked { background-color: white;color: black;}
+ &:insensitive { color: transparentize($osd_fg_color, 0.5);}
border-radius: $modal_radius - $screenshot_ui_shot_cast_spacing;
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index 931f958319..d82d7a7a62 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -1021,8 +1021,6 @@ var ScreenshotUI = GObject.registerClass({
this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
- Main.sessionMode.connect('updated', () => this.close(true));
-
// The full-screen screenshot has a separate container so that we can
// show it without the screenshot UI fade-in for a nicer animation.
this._stageScreenshotContainer = new St.Widget({ visible: false });
@@ -1343,6 +1341,15 @@ var ScreenshotUI = GObject.registerClass({
}
}
);
+
+ Main.sessionMode.connect('updated',
+ () => this._sessionUpdated());
+ this._sessionUpdated();
+ }
+
+ _sessionUpdated() {
+ this.close(true);
+ this._castButton.reactive = Main.sessionMode.allowScreencast;
}
_refreshButtonLayout() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]