[mutter] monitor-manager: Expose the privacy screen state on DBus current state
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor-manager: Expose the privacy screen state on DBus current state
- Date: Tue, 25 Jan 2022 08:10:39 +0000 (UTC)
commit fd1f6094c975b7238321cca29519267865c55b76
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Mon Mar 22 01:20:00 2021 +0100
monitor-manager: Expose the privacy screen state on DBus current state
Expose each monitor state as two booleans, not to expose the whole flags
Related-to: GNOME/gnome-control-center#909
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1952>
data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml | 6 ++++++
src/backends/meta-monitor-manager.c | 14 ++++++++++++++
2 files changed, 20 insertions(+)
---
diff --git a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
index 7522652dc0..2a7c5bb1ec 100644
--- a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
+++ b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml
@@ -336,6 +336,12 @@
laptop panel (absence of this means it is
not built in)
- "display-name" (s): a human readable display name of the monitor
+ - "privacy-screen-state" (bb): the state of the privacy screen
+ (absence of this means it is not being
+ supported) first value indicates whether
+ it's enabled and second value whether it's
+ hardware locked (and so can't be changed
+ via gsettings)
Possible mode flags:
1 : preferred mode
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 1430171e72..2dff6539e1 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -1802,6 +1802,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton,
MetaMonitorSpec *monitor_spec = meta_monitor_get_spec (monitor);
MetaMonitorMode *current_mode;
MetaMonitorMode *preferred_mode;
+ MetaPrivacyScreenState privacy_screen_state;
GVariantBuilder modes_builder;
GVariantBuilder monitor_properties_builder;
GList *k;
@@ -1901,6 +1902,19 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton,
"display-name",
g_variant_new_string (display_name));
+ privacy_screen_state = meta_monitor_get_privacy_screen_state (monitor);
+ if (privacy_screen_state != META_PRIVACY_SCREEN_UNAVAILABLE)
+ {
+ GVariant *state;
+
+ state = g_variant_new ("(bb)",
+ !!(privacy_screen_state & META_PRIVACY_SCREEN_ENABLED),
+ !!(privacy_screen_state & META_PRIVACY_SCREEN_LOCKED));
+
+ g_variant_builder_add (&monitor_properties_builder, "{sv}",
+ "privacy-screen-state", state);
+ }
+
g_variant_builder_add (&monitors_builder, MONITOR_FORMAT,
monitor_spec->connector,
monitor_spec->vendor,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]