[mutter] monitor-manager: check for underscan setting validity upfront
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor-manager: check for underscan setting validity upfront
- Date: Wed, 16 Oct 2019 14:43:44 +0000 (UTC)
commit 8665084df15190adc0d18cc77b7fcb738d3e4fa6
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Thu Jul 4 12:52:30 2019 -0700
monitor-manager: check for underscan setting validity upfront
Instead of doing a roundtrip to the X server before setting it, rely on
the previous value fetched before the configuration was sent over DBus.
This matches the argument check we already do elsewhere, and will allow
us to more easily add an additional condition to determine if underscan
is supported.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/673
src/backends/meta-monitor-manager.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 7e2603f69..a64af1a46 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -1649,6 +1649,7 @@ create_monitor_config_from_variant (MetaMonitorManager *manager,
MetaMonitorModeSpec *monitor_mode_spec;
g_autoptr (GVariant) properties_variant = NULL;
gboolean enable_underscanning = FALSE;
+ gboolean set_underscanning = FALSE;
g_variant_get (monitor_config_variant, "(ss@a{sv})",
&connector,
@@ -1671,7 +1672,18 @@ create_monitor_config_from_variant (MetaMonitorManager *manager,
return NULL;
}
- g_variant_lookup (properties_variant, "underscanning", "b", &enable_underscanning);
+ set_underscanning =
+ g_variant_lookup (properties_variant, "underscanning", "b",
+ &enable_underscanning);
+ if (set_underscanning)
+ {
+ if (enable_underscanning && !meta_monitor_supports_underscanning (monitor))
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Underscanning requested but unsupported");
+ return NULL;
+ }
+ }
monitor_spec = meta_monitor_spec_clone (meta_monitor_get_spec (monitor));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]