From 8df0beae087867afc3c93fef000c6968a401259a Mon Sep 17 00:00:00 2001 From: Dor Askayo Date: Sun, 11 Feb 2024 02:27:30 +0200 Subject: [PATCH] monitor-manger: Expose the minimum refresh rate of monitors This exposes the minimum refresh rate of monitors through D-Bus. Part-of: --- data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml | 3 +++ src/backends/meta-monitor-manager.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml index 45c9c633a..2fe8450a8 100644 --- a/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml +++ b/data/dbus-interfaces/org.gnome.Mutter.DisplayConfig.xml @@ -359,6 +359,9 @@ it's enabled and second value whether it's hardware locked (and so can't be changed via gsettings) + - "min-refresh-rate" (i): minimum refresh rate of monitor when + Variable Refresh Rate is active (absence + of this means unknown) Possible mode flags: 1 : preferred mode diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c index a73ee5d87..77743bc72 100644 --- a/src/backends/meta-monitor-manager.c +++ b/src/backends/meta-monitor-manager.c @@ -2073,6 +2073,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, MetaMonitorMode *current_mode; MetaMonitorMode *preferred_mode; MetaPrivacyScreenState privacy_screen_state; + int min_refresh_rate; GVariantBuilder modes_builder; GVariantBuilder monitor_properties_builder; GList *k; @@ -2190,6 +2191,14 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton, "privacy-screen-state", state); } + if (meta_monitor_get_min_refresh_rate (monitor, + &min_refresh_rate)) + { + g_variant_builder_add (&monitor_properties_builder, "{sv}", + "min-refresh-rate", + g_variant_new_int32 (min_refresh_rate)); + } + g_variant_builder_add (&monitors_builder, MONITOR_FORMAT, monitor_spec->connector, monitor_spec->vendor,