Clean up++. Also fix randr 1.0 corner case.

SVN revision: 66465
This commit is contained in:
Leif Middelschulte 2011-12-22 15:11:35 +00:00
parent cbf14cf105
commit 10ce636d7a
1 changed files with 12 additions and 13 deletions

View File

@ -163,12 +163,14 @@ _e_randr_screen_info_refresh(void)
root = roots[0]; root = roots[0];
free(roots); free(roots);
if ((!ecore_x_randr_query()) || if (!ecore_x_randr_query())
!(e_randr_screen_info = _e_randr_screen_info_new())) goto e_randr_screen_info_refresh_fail;
if (!(e_randr_screen_info = _e_randr_screen_info_new()))
goto e_randr_screen_info_refresh_fail_free_screen; goto e_randr_screen_info_refresh_fail_free_screen;
if ((e_randr_screen_info->randr_version = ecore_x_randr_version_get())) e_randr_screen_info->randr_version = ecore_x_randr_version_get();
e_randr_screen_info->root = root; e_randr_screen_info->root = root;
if (e_randr_screen_info->randr_version == ECORE_X_RANDR_1_1) if (e_randr_screen_info->randr_version == ECORE_X_RANDR_1_1)
{ {
if (!(e_randr_screen_info->rrvd_info.randr_info_11 = _e_randr_screen_info_11_new())) if (!(e_randr_screen_info->rrvd_info.randr_info_11 = _e_randr_screen_info_11_new()))
@ -187,13 +189,15 @@ _e_randr_screen_info_refresh(void)
//also restore stored policies //also restore stored policies
_e_randr_restore_12_policies(e_randr_screen_info->rrvd_info.randr_info_12); _e_randr_restore_12_policies(e_randr_screen_info->rrvd_info.randr_info_12);
} }
else
goto e_randr_screen_info_refresh_fail_free_screen;
return EINA_TRUE; return EINA_TRUE;
e_randr_screen_info_refresh_fail_free_screen: e_randr_screen_info_refresh_fail_free_screen:
if (e_randr_screen_info) if (e_randr_screen_info)
_e_randr_screen_info_free(e_randr_screen_info); _e_randr_screen_info_free(e_randr_screen_info);
e_randr_screen_info_refresh_fail:
return EINA_FALSE; return EINA_FALSE;
} }
@ -1563,7 +1567,6 @@ e_randr_try_restore_configuration(E_Randr_Screen_Info *si)
Eina_Bool Eina_Bool
_e_randr_try_restore_11(E_Randr_Screen_Info_11 *si_11) _e_randr_try_restore_11(E_Randr_Screen_Info_11 *si_11)
{ {
E_Manager *man;
Eina_List *iter; Eina_List *iter;
Ecore_X_Randr_Screen_Size_MM *stored_size, *size; Ecore_X_Randr_Screen_Size_MM *stored_size, *size;
int i = 0; int i = 0;
@ -1577,8 +1580,7 @@ _e_randr_try_restore_11(E_Randr_Screen_Info_11 *si_11)
&& (stored_size->width_mm == size->width_mm) && (stored_size->width_mm == size->width_mm)
&& (stored_size->height_mm == size->height_mm)) && (stored_size->height_mm == size->height_mm))
{ {
man = e_manager_current_get(); return ecore_x_randr_screen_primary_output_size_set(e_randr_screen_info->root, i);
return ecore_x_randr_screen_primary_output_size_set(man->root, i);
} }
i++; i++;
} }
@ -1699,7 +1701,6 @@ _e_randr_try_restore_12(E_Randr_Screen_Info_12 *si_12)
Ecore_X_Randr_Mode_Info *mi; Ecore_X_Randr_Mode_Info *mi;
Eina_List *iter; Eina_List *iter;
Eina_Bool ret = EINA_TRUE; Eina_Bool ret = EINA_TRUE;
E_Manager *man;
//Restore policies //Restore policies
_e_randr_restore_12_policies(si_12); _e_randr_restore_12_policies(si_12);
@ -1708,8 +1709,6 @@ _e_randr_try_restore_12(E_Randr_Screen_Info_12 *si_12)
* step by step. disable entire setup matching for now * step by step. disable entire setup matching for now
if (!(ss_12 = _e_randr_find_matching_serialized_setup(e_config->randr_serialized_setup->serialized_setups_12, si_12))) return EINA_FALSE; if (!(ss_12 = _e_randr_find_matching_serialized_setup(e_config->randr_serialized_setup->serialized_setups_12, si_12))) return EINA_FALSE;
man = e_manager_current_get();
EINA_LIST_FOREACH (ss_12->serialized_crtcs, iter, sc) EINA_LIST_FOREACH (ss_12->serialized_crtcs, iter, sc)
{ {
ci = _e_randr_find_matching_crtc(si_12->crtcs, sc); ci = _e_randr_find_matching_crtc(si_12->crtcs, sc);
@ -1722,8 +1721,8 @@ _e_randr_try_restore_12(E_Randr_Screen_Info_12 *si_12)
free(outputs_array); free(outputs_array);
continue; continue;
} }
ret &= ecore_x_randr_crtc_mode_set(man->root, ci->xid, outputs_array, eina_list_count(outputs_list), mi->xid); ret &= ecore_x_randr_crtc_mode_set(e_randr_screen_info->root, ci->xid, outputs_array, eina_list_count(outputs_list), mi->xid);
ret &= ecore_x_randr_crtc_pos_set(man->root, ci->xid, sc->pos.x, sc->pos.y); ret &= ecore_x_randr_crtc_pos_set(e_randr_screen_info->root, ci->xid, sc->pos.x, sc->pos.y);
} }
*/ */
return ret; return ret;