Backport: bba201a :: If a monitor is disabled by the user, then we need to set number of outputs to zero, and free any allocated outputs before trying to apply settings.

Also, check for valid mode (not 0) before trying to fetch mode_info.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
Signed-off-by: Deon Thomas <PrinceAMD.Elive@gmail.com>
This commit is contained in:
Chris Michael 2013-06-27 07:39:23 +01:00 committed by Deon Thomas
parent 9170ac74dc
commit a3990e5108
1 changed files with 7 additions and 2 deletions

View File

@ -807,7 +807,12 @@ e_smart_monitor_changes_apply(Evas_Object *obj)
/* record current values */
mode = sd->current.mode;
if (!sd->current.enabled) mode = 0;
if (!sd->current.enabled)
{
mode = 0;
noutputs = 0;
free(outputs);
}
cx = sd->current.x;
cy = sd->current.y;
@ -852,7 +857,7 @@ e_smart_monitor_changes_apply(Evas_Object *obj)
sd->crtc.orient = orient;
sd->crtc.enabled = sd->current.enabled;
if ((mode_info = ecore_x_randr_mode_info_get(root, sd->crtc.mode)))
if ((sd->crtc.mode) && (mode_info = ecore_x_randr_mode_info_get(root, sd->crtc.mode)))
{
sd->crtc.refresh_rate =
_e_smart_monitor_mode_refresh_rate_get(mode_info);