MetaScreen: Remove redundant copy of logical monitors array

It was just pointer to the actual list; having to synchronize a list of
logical monitors with the actual monitors managed by the backend is
unnecessary.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
Jonas Ådahl
2016-11-28 20:11:24 +08:00
parent 103df63023
commit e22bbd4b14
8 changed files with 320 additions and 108 deletions

View File

@ -363,6 +363,8 @@ struct _MetaMonitorManagerClass
void meta_monitor_manager_rebuild_derived (MetaMonitorManager *manager);
int meta_monitor_manager_get_num_logical_monitors (MetaMonitorManager *manager);
MetaLogicalMonitor *meta_monitor_manager_get_logical_monitors (MetaMonitorManager *manager,
unsigned int *n_logical_monitors);

View File

@ -1290,11 +1290,18 @@ meta_monitor_manager_get (void)
return meta_backend_get_monitor_manager (backend);
}
int
meta_monitor_manager_get_num_logical_monitors (MetaMonitorManager *manager)
{
return (int) manager->n_logical_monitors;
}
MetaLogicalMonitor *
meta_monitor_manager_get_logical_monitors (MetaMonitorManager *manager,
unsigned int *n_logical_monitors)
{
*n_logical_monitors = manager->n_logical_monitors;
if (n_logical_monitors)
*n_logical_monitors = manager->n_logical_monitors;
return manager->logical_monitors;
}