Disable e_randr refresh on startup, because runtime settings get lost

SVN revision: 68169
This commit is contained in:
Leif Middelschulte 2012-02-20 19:14:16 +00:00
parent 147659280f
commit f4820b562e
4 changed files with 44 additions and 40 deletions

View File

@ -121,7 +121,7 @@ create_data(E_Config_Dialog *cfd)
// Prove we got all things to get going
EINA_SAFETY_ON_TRUE_RETURN_VAL(!E_RANDR_12, NULL);
e_randr_screen_info_refresh();
//e_randr_screen_info_refresh();
e_config_runtime_info = E_NEW(E_Config_Dialog_Data, 1);
e_config_runtime_info->cfd = cfd;

View File

@ -220,15 +220,14 @@ _dialog_subdialog_arrangement_rep_add(Evas *canvas, E_Config_Randr_Dialog_Output
//Try to get the name of the monitor connected to the output's last output via edid
//else use the output's name
if (output_dialog_data->crtc)
output_info = (E_Randr_Output_Info *)eina_list_data_get(eina_list_last(output_dialog_data->crtc->outputs));
output_info = (E_Randr_Output_Info *)eina_list_data_get(output_dialog_data->crtc->outputs);
else
output_info = output_dialog_data->output;
if (output_info)
{
if (output_info->monitor &&
ecore_x_randr_edid_has_valid_header(output_info->monitor->edid, output_info->monitor->edid_length))
if (output_info->monitor)
output_name = ecore_x_randr_edid_display_name_get(output_info->monitor->edid, output_info->monitor->edid_length);
else if (output_info->name)
if (!output_name && output_info->name)
output_name = output_info->name;
}
if (output_name)

View File

@ -15,7 +15,7 @@ Eina_Bool dialog_subdialog_orientation_basic_apply_data(E_Config_Dialog *cfd,
void dialog_subdialog_orientation_update_radio_buttons(Evas_Object *crtc);
void dialog_subdialog_orientation_update_edje(Evas_Object *crtc);
//static void _dialog_subdialog_orientation_policy_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
//static void _dialog_subdialog_orientation_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
extern E_Config_Dialog_Data *e_config_runtime_info;
extern char _theme_file_path[];
@ -23,12 +23,12 @@ extern char _theme_file_path[];
static void
_dialog_subdialog_orientation_radio_add_callbacks(void)
{
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_reflect_vertical, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_reflect_horizontal, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot270, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot180, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot90, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_normal, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_policy_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_reflect_vertical, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_reflect_horizontal, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot270, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot180, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_rot90, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
evas_object_event_callback_add (e_config_runtime_info->gui.subdialogs.orientation.radio_normal, EVAS_CALLBACK_MOUSE_UP, _dialog_subdialog_orientation_mouse_up_cb, NULL);
}
*/
@ -122,7 +122,7 @@ _dialog_subdialog_orientation_radio_add_fail:
#if 0
static void
_dialog_subdialog_orientation_policy_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
_dialog_subdialog_orientation_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
char signal[40];
int orientation = ECORE_X_RANDR_ORIENTATION_ROT_0;

View File

@ -19,19 +19,19 @@ Eina_Bool dialog_subdialog_policies_create_data(E_Config_Dialog_Data *e_confi
Eina_Bool dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
Eina_Bool dialog_subdialog_policies_basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
Eina_Bool dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
void dialog_subdialog_policies_update_radio_buttons(Evas_Object *crtc);
void dialog_subdialog_policies_update_radio_buttons(Evas_Object *rep);
//static void _dialog_subdialog_policies_policy_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
extern E_Config_Dialog_Data *e_config_runtime_info;
extern char _theme_file_path[];
static const char *_ECORE_X_RANDR_POLICIES_STRINGS[] = {
"ECORE_X_RANDR_OUTPUT_POLICY_ABOVE",
"ECORE_X_RANDR_OUTPUT_POLICY_RIGHT",
"ECORE_X_RANDR_OUTPUT_POLICY_BELOW",
"ECORE_X_RANDR_OUTPUT_POLICY_LEFT",
"ECORE_X_RANDR_OUTPUT_POLICY_CLONE",
"ECORE_X_RANDR_OUTPUT_POLICY_NONE"};
static const char *_POLICIES_STRINGS[] = {
"ABOVE",
"RIGHT",
"BELOW",
"LEFT",
"CLONE",
"NONE"};
/*
@ -51,20 +51,21 @@ Eina_Bool
dialog_subdialog_policies_create_data(E_Config_Dialog_Data *e_config_runtime_info)
{
E_Config_Randr_Dialog_Output_Dialog_Data *odd;
E_Randr_Output_Info *oi;
Eina_List *iter;
if (!e_config_runtime_info || !e_config_runtime_info->output_dialog_data_list) return EINA_FALSE;
EINA_LIST_FOREACH(e_config_runtime_info->output_dialog_data_list, iter, odd)
{
E_Randr_Output_Info *oi;
if (odd->crtc)
oi = eina_list_data_get(eina_list_last(odd->crtc->outputs));
oi = eina_list_data_get(odd->crtc->outputs);
else if (odd->output)
oi = odd->output;
else continue;
odd->previous_policy = oi->policy;
odd->new_policy = oi->policy;
fprintf(stderr, "CONF_RANDR: Read in policy of %d as %s.\n", oi->xid, _POLICIES_STRINGS[odd->new_policy - 1]);
}
return EINA_TRUE;
@ -205,7 +206,7 @@ dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Co
//policy update
e_config_runtime_info->gui.selected_output_dd->previous_policy = e_config_runtime_info->gui.selected_output_dd->new_policy;
e_config_runtime_info->gui.selected_output_dd->new_policy = e_config_runtime_info->gui.subdialogs.policies.radio_val;
fprintf(stderr, "CONF_RANDR: 'New display attached'-policy set to %s.\n", _ECORE_X_RANDR_POLICIES_STRINGS[e_config_runtime_info->gui.selected_output_dd->new_policy - 1]);
fprintf(stderr, "CONF_RANDR: 'New display attached'-policy set to %s.\n", _POLICIES_STRINGS[e_config_runtime_info->gui.selected_output_dd->new_policy - 1]);
return EINA_TRUE;
}
@ -219,14 +220,13 @@ dialog_subdialog_policies_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E
}
void
dialog_subdialog_policies_update_radio_buttons(Evas_Object *crtc)
dialog_subdialog_policies_update_radio_buttons(Evas_Object *rep)
{
E_Config_Randr_Dialog_Output_Dialog_Data *output_dialog_data;
E_Randr_Output_Info *output = NULL;
Ecore_X_Randr_Output_Policy policy;
//disable widgets, if no crtc is selected
if (!crtc || !(output_dialog_data = evas_object_data_get(crtc, "rep_info")))
//disable widgets, if no rep is selected
if (!rep || !(output_dialog_data = evas_object_data_get(rep, "rep_info")))
{
//Evas_Object *radio_above, *radio_right, *radio_below, *radio_left, *radio_clone, *radio_none;
e_widget_disabled_set(e_config_runtime_info->gui.subdialogs.policies.radio_above, EINA_TRUE);
@ -247,17 +247,7 @@ dialog_subdialog_policies_update_radio_buttons(Evas_Object *crtc)
e_widget_disabled_set(e_config_runtime_info->gui.subdialogs.policies.radio_none, EINA_FALSE);
}
if (output_dialog_data->crtc && output_dialog_data->crtc->outputs)
{
output = (E_Randr_Output_Info *)eina_list_data_get(eina_list_last(output_dialog_data->crtc->outputs));
}
else if (output_dialog_data->output)
{
output = output_dialog_data->output;
}
if (!output) return;
policy = output->policy;
policy = output_dialog_data->new_policy;
e_config_runtime_info->gui.selected_output_dd = output_dialog_data;
//toggle the switch of the currently used policies
switch (policy)
@ -291,11 +281,26 @@ void
dialog_subdialog_policies_keep_changes(E_Config_Dialog_Data *cfdata)
{
E_Config_Randr_Dialog_Output_Dialog_Data *odd;
E_Randr_Output_Info *oi;
Eina_List *iter;
if (!cfdata || !cfdata->gui.selected_output_dd || !cfdata->gui.selected_output_dd->output) return;
odd = cfdata->gui.selected_output_dd;
odd->previous_policy = odd->new_policy;
odd->output->policy = odd->new_policy;
if (odd->crtc)
{
EINA_LIST_FOREACH(odd->crtc->outputs, iter, oi)
{
oi->policy = odd->new_policy;
fprintf(stderr, "CONF_RANDR: Policy change to %s kept for output %d.\n", _POLICIES_STRINGS[odd->new_policy - 1], oi->xid);
}
}
else if (odd->output)
{
odd->output->policy = odd->new_policy;
fprintf(stderr, "CONF_RANDR: Policy change to %s kept for output %d.\n", _POLICIES_STRINGS[odd->new_policy - 1], odd->output->xid);
}
}
void