From 302dfe88f3182542a6e51b55378f75a8a0b2afa2 Mon Sep 17 00:00:00 2001 From: Leif Middelschulte Date: Thu, 29 Dec 2011 18:29:52 +0000 Subject: [PATCH] Fix possible issue with missing outputs. SVN revision: 66638 --- src/bin/e_randr.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/e_randr.c b/src/bin/e_randr.c index 10bfce2df..445726747 100644 --- a/src/bin/e_randr.c +++ b/src/bin/e_randr.c @@ -1947,7 +1947,7 @@ _e_randr_crtc_outputs_refs_update(E_Randr_Crtc_Info *crtc_info) E_Randr_Output_Info *output_info; int i, noutputs; - if (!e_randr_screen_info->rrvd_info.randr_info_12->outputs) return; + EINA_SAFETY_ON_NULL_RETURN(e_randr_screen_info->rrvd_info.randr_info_12->outputs); //get references to output_info structs which are related to this CRTC if ((outputs = ecore_x_randr_crtc_outputs_get(e_randr_screen_info->root, crtc_info->xid, &noutputs))) @@ -1956,7 +1956,13 @@ _e_randr_crtc_outputs_refs_update(E_Randr_Crtc_Info *crtc_info) crtc_info->outputs = NULL; for (i = 0; i < noutputs; i++) { - output_info = _e_randr_output_info_get(outputs[i]); + if (!(output_info = _e_randr_output_info_get(outputs[i]))) + { + output_info = _e_randr_output_info_new(1); + output_info->xid = outputs[i]; + _e_randr_output_info_set(output_info); + e_randr_screen_info->rrvd_info.randr_info_12->outputs = eina_list_append(e_randr_screen_info->rrvd_info.randr_info_12->outputs, output_info); + } crtc_info->outputs = eina_list_append(crtc_info->outputs, output_info); output_info->crtc = crtc_info; }