DisplayConfig: Add an optional 'is_underscanning' monitor property
Add a 'is_underscanning' entry to the properties map, if the monitor supports underscanning. The client should assume a monitor does not support underscanning if no property was added. https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
parent
bc56971e18
commit
6b2a111428
@ -1209,6 +1209,7 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton,
|
||||
MetaMonitorMode *current_mode;
|
||||
MetaMonitorMode *preferred_mode;
|
||||
GVariantBuilder modes_builder;
|
||||
GVariantBuilder properties_builder;
|
||||
GList *k;
|
||||
|
||||
current_mode = meta_monitor_get_current_mode (monitor);
|
||||
@ -1240,13 +1241,23 @@ meta_monitor_manager_handle_get_current_state (MetaDBusDisplayConfig *skeleton,
|
||||
flags);
|
||||
}
|
||||
|
||||
g_variant_builder_init (&properties_builder, G_VARIANT_TYPE ("a{sv}"));
|
||||
if (meta_monitor_supports_underscanning (monitor))
|
||||
{
|
||||
gboolean is_underscanning = meta_monitor_is_underscanning (monitor);
|
||||
|
||||
g_variant_builder_add (&properties_builder, "{sv}",
|
||||
"is_underscanning",
|
||||
g_variant_new_boolean (is_underscanning));
|
||||
}
|
||||
|
||||
g_variant_builder_add (&monitors_builder, MONITOR_FORMAT,
|
||||
monitor_spec->connector,
|
||||
monitor_spec->vendor,
|
||||
monitor_spec->product,
|
||||
monitor_spec->serial,
|
||||
&modes_builder,
|
||||
NULL);
|
||||
&properties_builder);
|
||||
}
|
||||
|
||||
for (l = manager->logical_monitors; l; l = l->next)
|
||||
|
@ -186,6 +186,16 @@ meta_monitor_is_primary (MetaMonitor *monitor)
|
||||
return output->is_primary;
|
||||
}
|
||||
|
||||
gboolean
|
||||
meta_monitor_supports_underscanning (MetaMonitor *monitor)
|
||||
{
|
||||
MetaOutput *output;
|
||||
|
||||
output = meta_monitor_get_main_output (monitor);
|
||||
|
||||
return output->supports_underscanning;
|
||||
}
|
||||
|
||||
gboolean
|
||||
meta_monitor_is_underscanning (MetaMonitor *monitor)
|
||||
{
|
||||
|
@ -91,6 +91,8 @@ MetaOutput * meta_monitor_get_main_output (MetaMonitor *monitor);
|
||||
|
||||
gboolean meta_monitor_is_primary (MetaMonitor *monitor);
|
||||
|
||||
gboolean meta_monitor_supports_underscanning (MetaMonitor *monitor);
|
||||
|
||||
gboolean meta_monitor_is_underscanning (MetaMonitor *monitor);
|
||||
|
||||
gboolean meta_monitor_is_laptop_panel (MetaMonitor *monitor);
|
||||
|
@ -313,6 +313,9 @@
|
||||
* a{sv} properties: optional properties, including:
|
||||
- "width_mm" (i): physical width of monitor in millimeters
|
||||
- "height_mm" (i): physical height of monitor in millimeters
|
||||
- "is_underscanning" (b): whether underscanning is enabled
|
||||
(absence of this means underscanning
|
||||
not being supported)
|
||||
|
||||
Possible mode flags:
|
||||
1 : preferred mode
|
||||
@ -337,7 +340,6 @@
|
||||
|
||||
@max_screen_size represents the maximum size the screen may have, or 0x0 if no
|
||||
such limit is known.
|
||||
|
||||
-->
|
||||
<method name="GetCurrentState">
|
||||
<arg name="serial" direction="out" type="u" />
|
||||
|
Loading…
Reference in New Issue
Block a user