monitor-manager-xrandr: Ignore outputs without modes
In some cases we get outputs without any valid mode. We need to ignore them or we'll crash later. https://bugzilla.gnome.org/show_bug.cgi?id=756796
This commit is contained in:
parent
2857fdbdb8
commit
86a913d37a
@ -808,6 +808,15 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
|
|||||||
{
|
{
|
||||||
GBytes *edid;
|
GBytes *edid;
|
||||||
|
|
||||||
|
/* Get this first so that if there are no valid modes we
|
||||||
|
can immediately skip to the next output without having
|
||||||
|
to unwind all the assignments below. */
|
||||||
|
output_get_modes (manager, meta_output, output);
|
||||||
|
if (meta_output->n_modes == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
meta_output->preferred_mode = meta_output->modes[0];
|
||||||
|
|
||||||
meta_output->winsys_id = resources->outputs[i];
|
meta_output->winsys_id = resources->outputs[i];
|
||||||
meta_output->name = g_strdup (output->name);
|
meta_output->name = g_strdup (output->name);
|
||||||
|
|
||||||
@ -824,8 +833,6 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
|
|||||||
meta_output->connector_type = output_get_connector_type (manager_xrandr, meta_output);
|
meta_output->connector_type = output_get_connector_type (manager_xrandr, meta_output);
|
||||||
|
|
||||||
output_get_tile_info (manager_xrandr, meta_output);
|
output_get_tile_info (manager_xrandr, meta_output);
|
||||||
output_get_modes (manager, meta_output, output);
|
|
||||||
meta_output->preferred_mode = meta_output->modes[0];
|
|
||||||
|
|
||||||
meta_output->n_possible_crtcs = output->ncrtc;
|
meta_output->n_possible_crtcs = output->ncrtc;
|
||||||
meta_output->possible_crtcs = g_new0 (MetaCRTC *, meta_output->n_possible_crtcs);
|
meta_output->possible_crtcs = g_new0 (MetaCRTC *, meta_output->n_possible_crtcs);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user