monitor-manager: Let the backends handle no configuration

Let the backends decide whether to just rebuild a derived state, or use
the NULL config to rebuild an empty logical state.

This also changes the expected screen size values of the no-outputs
test; as this case is actually handled now.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
Jonas Ådahl
2017-01-20 14:50:11 +08:00
parent 4e03e89869
commit fcc0288f0c
6 changed files with 30 additions and 3 deletions

View File

@ -501,6 +501,14 @@ meta_monitor_manager_dummy_apply_monitors_config (MetaMonitorManager *manager,
GPtrArray *crtc_infos;
GPtrArray *output_infos;
if (!config)
{
manager->screen_width = 0;
manager->screen_height = 0;
meta_monitor_manager_rebuild (manager, NULL);
}
if (!meta_monitor_config_manager_assign (manager, config,
&crtc_infos, &output_infos,
error))

View File

@ -420,7 +420,7 @@ done:
if (!config)
{
meta_monitor_manager_rebuild (manager, NULL);
meta_monitor_manager_apply_monitors_config (manager, NULL, &error);
return NULL;
}

View File

@ -1430,6 +1430,7 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager,
{
manager->screen_width = 0;
manager->screen_height = 0;
meta_monitor_manager_rebuild (manager, NULL);
return TRUE;
}

View File

@ -1303,6 +1303,12 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *manager,
GPtrArray *crtc_infos;
GPtrArray *output_infos;
if (!config)
{
meta_monitor_manager_rebuild_derived (manager);
return TRUE;
}
if (!meta_monitor_config_manager_assign (manager, config,
&crtc_infos, &output_infos,
error))