summaryrefslogtreecommitdiff
path: root/src/backends/meta-monitor-manager.c
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2021-03-22 01:20:00 +0100
committerMarge Bot <marge-bot@gnome.org>2022-01-25 07:31:19 +0000
commitfd1f6094c975b7238321cca29519267865c55b76 (patch)
treeea62e78621375e8071df1dbdcef7f88bfac0104f /src/backends/meta-monitor-manager.c
parentf96a167aea2d633619228b95ec4cb7a334f0ea18 (diff)
downloadmutter-fd1f6094c975b7238321cca29519267865c55b76.tar.gz
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>
Diffstat (limited to 'src/backends/meta-monitor-manager.c')
-rw-r--r--src/backends/meta-monitor-manager.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 1430171e7..2dff6539e 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,