Improve conf_randr dialog.

Adjust to changes in e_randr.h.
Change "display disabled" to "display disconnected"

SVN revision: 68116
This commit is contained in:
Leif Middelschulte 2012-02-18 16:49:17 +00:00
parent 7cda77af23
commit 62ded22064
7 changed files with 105 additions and 76 deletions

View File

@ -36,6 +36,7 @@
#define THEME_FILENAME "/e-module-conf_randr.edj"
#define TOOLBAR_ICONSIZE 16
#define E_RANDR_12 (e_randr_screen_info.rrvd_info.randr_info_12)
static void *create_data(E_Config_Dialog *cfd);
static void free_cfdata(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
@ -92,13 +93,18 @@ _dialog_output_dialog_data_new(E_Randr_Crtc_Info *crtc_info, E_Randr_Output_Info
{
E_Config_Randr_Dialog_Output_Dialog_Data *dialog_data;
if ((!crtc_info && !output_info) || !(dialog_data = E_NEW(E_Config_Randr_Dialog_Output_Dialog_Data, 1))) return NULL;
EINA_SAFETY_ON_NULL_RETURN_VAL(output_info, NULL);
dialog_data = E_NEW(E_Config_Randr_Dialog_Output_Dialog_Data, 1);
fprintf(stderr, "CONF_RANDR: Added output data struct for Output %d/CRTC %d.\n", output_info->xid, (output_info->crtc ? output_info->crtc->xid : Ecore_X_Randr_None));
if (crtc_info)
{
//already enabled screen
//already enabled screen, output info is already available in crtc
//struct
dialog_data->crtc = crtc_info;
}
else if (output_info)
else
{
//disabled monitor
dialog_data->output = output_info;
@ -114,24 +120,27 @@ create_data(E_Config_Dialog *cfd)
E_Config_Randr_Dialog_Output_Dialog_Data *odd;
// Prove we got all things to get going
EINA_SAFETY_ON_TRUE_RETURN_VAL(!e_randr_screen_info || (e_randr_screen_info->randr_version < ECORE_X_RANDR_1_2), NULL);
EINA_SAFETY_ON_FALSE_RETURN_VAL(e_randr_screen_info_refresh(), NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL(!(e_config_runtime_info = E_NEW(E_Config_Dialog_Data, 1)), NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL(!E_RANDR_12, NULL);
e_randr_screen_info_refresh();
e_config_runtime_info = E_NEW(E_Config_Dialog_Data, 1);
e_config_runtime_info->cfd = cfd;
//Compose theme's file path and name
snprintf(_theme_file_path, sizeof(_theme_file_path), "%s%s", conf_randr_module->dir, THEME_FILENAME);
e_config_runtime_info->manager = e_manager_current_get();
EINA_LIST_FOREACH(e_randr_screen_info->rrvd_info.randr_info_12->outputs, iter, output_info)
e_config_runtime_info->output_dialog_data_list = NULL;
EINA_LIST_FOREACH(e_randr_screen_info.rrvd_info.randr_info_12->outputs, iter, output_info)
{
if (!output_info)
{
fprintf(stderr, "CONF_RANDR: WWWWWWWWWWWWOOOOOOOOOOOOOTTTT an output_info of the central struct is NULL!\n");
continue;
}
if ((odd = _dialog_output_dialog_data_new(output_info->crtc, output_info)))
e_config_runtime_info->output_dialog_data_list = eina_list_append(e_config_runtime_info->output_dialog_data_list, odd);
}
fprintf(stderr, "CONF_RANDR: Added %d output data structs.\n", eina_list_count(e_config_runtime_info->output_dialog_data_list));
//FIXME: Properly (stack-like) free data when creation fails
EINA_SAFETY_ON_FALSE_GOTO(dialog_subdialog_arrangement_create_data(e_config_runtime_info), _e_conf_randr_create_data_failed_free_data);
EINA_SAFETY_ON_FALSE_GOTO(dialog_subdialog_resolutions_create_data(e_config_runtime_info), _e_conf_randr_create_data_failed_free_data);
@ -148,7 +157,10 @@ _e_conf_randr_create_data_failed_free_data:
static void
free_cfdata(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
EINA_SAFETY_ON_TRUE_RETURN(!e_randr_screen_info);
E_Config_Randr_Dialog_Output_Dialog_Data *dialog_data;
EINA_SAFETY_ON_TRUE_RETURN(!E_RANDR_12);
dialog_subdialog_arrangement_free_data(cfd, cfdata);
evas_object_del(cfdata->gui.subdialogs.arrangement.dialog);
@ -156,6 +168,12 @@ free_cfdata(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
evas_object_del(cfdata->gui.subdialogs.resolutions.dialog);
evas_object_del(cfdata->gui.subdialogs.orientation.dialog);
EINA_LIST_FREE(cfdata->output_dialog_data_list, dialog_data)
{
free(dialog_data);
}
cfdata->output_dialog_data_list = NULL;
free(cfdata);
}
@ -271,7 +289,7 @@ _e_conf_randr_confirmation_dialog_store_cb(void *data, E_Dialog *dia)
_e_conf_randr_confirmation_dialog_delete_cb(dia->win);
//but actually trigger saving the stuff
e_randr_store_configuration(e_randr_screen_info, modifier);
e_randr_store_configuration(modifier);
}
@ -318,7 +336,7 @@ basic_create_widgets(E_Config_Dialog *cfd, Evas *canvas, E_Config_Dialog_Data *c
{
Evas_Object *table = NULL, *wl = NULL;
EINA_SAFETY_ON_TRUE_RETURN_VAL (!e_randr_screen_info || (e_randr_screen_info->randr_version < ECORE_X_RANDR_1_2), NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL (!E_RANDR_12 || (e_randr_screen_info.randr_version < ECORE_X_RANDR_1_2), NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL((!canvas || !cfdata), NULL);
e_config_runtime_info->gui.canvas = canvas;
@ -408,7 +426,7 @@ e_int_config_randr(E_Container *con, const char *params __UNUSED__){
E_Config_Dialog *cfd;
E_Config_Dialog_View *v;
if (!e_randr_screen_info || (e_randr_screen_info->randr_version < ECORE_X_RANDR_1_2))
if (!E_RANDR_12 || (e_randr_screen_info.randr_version < ECORE_X_RANDR_1_2))
{
ecore_timer_add(0.5, _deferred_noxrandr_error, NULL);
fprintf(stderr, "CONF_RANDR: XRandR version >= 1.2 necessary to work.\n");

View File

@ -23,10 +23,10 @@ struct _E_Config_Dialog_Data
E_Config_Randr_Dialog_Confirmation_Dialog_Data *confirmation_dialog;
struct {
struct {
Evas_Object *dialog, *widget_list, *swallowing_edje, *smart_parent, *suggestion, *clipper, *check_display_disabled_outputs;
Evas_Object *dialog, *widget_list, *swallowing_edje, *smart_parent, *suggestion, *clipper, *check_display_disconnected_outputs;
Evas_Coord_Point previous_pos, relative_zero;
Evas_Coord_Rectangle disabled_output_size;
int suggestion_dist_min, check_val_display_disabled_outputs;
int suggestion_dist_min, check_val_display_disconnected_outputs;
} arrangement;
struct {
Evas_Object *dialog;
@ -72,7 +72,7 @@ struct _E_Config_Randr_Dialog_Confirmation_Dialog_Data
struct _Config
{
Eina_Bool display_disabled_outputs;
Eina_Bool display_disconnected_outputs;
};
E_Config_Dialog *e_int_config_randr(E_Container *con, const char *params __UNUSED__);

View File

@ -68,14 +68,18 @@ _dialog_subdialog_arrangement_rep_dialog_data_fill(E_Config_Randr_Dialog_Output_
{
//disabled monitor
odd->previous_mode = NULL;
//try to get a mode from the preferred list, else use default list
if (!(odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->preferred_modes))))
if (odd->output->monitor)
{
if (odd->output->modes)
odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->modes));
else
odd->preferred_mode = NULL;
//try to get a mode from the preferred list, else use default list
if (!(odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->monitor->preferred_modes))))
{
if (odd->output->monitor->modes)
odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->monitor->modes));
}
}
else
{
odd->preferred_mode = NULL;
}
odd->previous_pos.x = Ecore_X_Randr_Unset;
@ -97,6 +101,8 @@ _dialog_subdialog_arrangement_update(void)
if (!e_config_runtime_info || !e_config_runtime_info->gui.canvas || !e_config_runtime_info->output_dialog_data_list || !area) return;
fprintf(stderr, "CONF_RANDR: Display disconnected outputs %d\n", randr_dialog_config->display_disconnected_outputs);
EINA_LIST_FOREACH(evas_object_smart_members_get(area), iter, rep)
{
//skip clipper
@ -108,12 +114,9 @@ _dialog_subdialog_arrangement_update(void)
EINA_LIST_FOREACH(e_config_runtime_info->output_dialog_data_list, iter, output_dialog_data)
{
fprintf(stderr, "CONF_RANDR: Display disabled outputs %d\n", randr_dialog_config->display_disabled_outputs);
if (!output_dialog_data->crtc)
{
if(!output_dialog_data->output || (randr_dialog_config && !randr_dialog_config->display_disabled_outputs))
continue;
}
if(!output_dialog_data->crtc &&
(!output_dialog_data->output->monitor && (randr_dialog_config && !randr_dialog_config->display_disconnected_outputs)))
continue;
rep = _dialog_subdialog_arrangement_rep_add(e_config_runtime_info->gui.canvas, output_dialog_data);
@ -159,11 +162,11 @@ dialog_subdialog_arrangement_basic_create_widgets(Evas *canvas)
subdialog = e_widget_list_add(canvas, 0, 1);
//Add checkbox
check = e_widget_check_add(canvas, _("Display disabled outputs"), &e_config_runtime_info->gui.subdialogs.arrangement.check_val_display_disabled_outputs);
check = e_widget_check_add(canvas, _("Display disconnected outputs"), &e_config_runtime_info->gui.subdialogs.arrangement.check_val_display_disconnected_outputs);
if (randr_dialog_config)
e_widget_check_checked_set(check, randr_dialog_config->display_disabled_outputs);
e_widget_check_checked_set(check, randr_dialog_config->display_disconnected_outputs);
evas_object_event_callback_add(check, EVAS_CALLBACK_MOUSE_DOWN, _dialog_subdialog_arrangement_check_mouse_down_cb, NULL);
e_config_runtime_info->gui.subdialogs.arrangement.check_display_disabled_outputs = check;
e_config_runtime_info->gui.subdialogs.arrangement.check_display_disconnected_outputs = check;
//Add smart move area with outputs
//initialize smart object
@ -222,8 +225,9 @@ _dialog_subdialog_arrangement_rep_add(Evas *canvas, E_Config_Randr_Dialog_Output
output_info = output_dialog_data->output;
if (output_info)
{
if (ecore_x_randr_edid_has_valid_header(output_info->edid, output_info->edid_length))
output_name = ecore_x_randr_edid_display_name_get(output_info->edid, output_info->edid_length);
if (output_info->monitor &&
ecore_x_randr_edid_has_valid_header(output_info->monitor->edid, output_info->monitor->edid_length))
output_name = ecore_x_randr_edid_display_name_get(output_info->monitor->edid, output_info->monitor->edid_length);
else if (output_info->name)
output_name = output_info->name;
}
@ -334,7 +338,7 @@ _dialog_subdialog_arrangement_smart_class_resize(Evas_Object *obj, Evas_Coord w,
{
new_geo.w = (int)((float)e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.w * scaling_factor);
new_geo.h = (int)((float)e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.h * scaling_factor);
fprintf(stderr, "CONF_RANDR: Neither mode nor preferred mode are avavailable for %x. Using %dx%d.\n", (output_dialog_data->crtc ? output_dialog_data->crtc->xid : output_dialog_data->output->xid), e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.w, e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.h);
fprintf(stderr, "CONF_RANDR: Neither mode nor preferred mode are avavailable for %d. Using %dx%d.\n", (output_dialog_data->crtc ? output_dialog_data->crtc->xid : output_dialog_data->output->xid), e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.w, e_config_runtime_info->gui.subdialogs.arrangement.disabled_output_size.h);
}
if ((new_geo.w <= 0) || (new_geo.h <= 0))
{
@ -380,10 +384,10 @@ _dialog_subdialog_arrangement_check_mouse_down_cb(void *data __UNUSED__, Evas *e
{
if (!obj || !e_config_runtime_info || !randr_dialog_config) return;
if (obj == e_config_runtime_info->gui.subdialogs.arrangement.check_display_disabled_outputs)
if (obj == e_config_runtime_info->gui.subdialogs.arrangement.check_display_disconnected_outputs)
{
//this is bad. The events are called _before_ the value is updated.
randr_dialog_config->display_disabled_outputs ^= EINA_TRUE;
randr_dialog_config->display_disconnected_outputs ^= EINA_TRUE;
_dialog_subdialog_arrangement_update();
}
}
@ -631,18 +635,17 @@ void
dialog_subdialog_arrangement_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
E_Config_Randr_Dialog_Output_Dialog_Data *dialog_data;
Eina_List *iter;
EINA_SAFETY_ON_NULL_RETURN(cfdata);
EINA_LIST_FREE(cfdata->output_dialog_data_list, dialog_data)
EINA_LIST_FOREACH(cfdata->output_dialog_data_list, iter, dialog_data)
{
if (!dialog_data) continue;
if (dialog_data->bg)
{
evas_object_del(dialog_data->bg);
dialog_data->bg = NULL;
}
free(dialog_data);
}
}
@ -836,7 +839,7 @@ dialog_subdialog_arrangement_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dia
|| ((odd->new_pos.x == Ecore_X_Randr_Unset) || (odd->new_pos.y == Ecore_X_Randr_Unset))) continue;
if ((odd->previous_pos.x != odd->new_pos.x) || (odd->previous_pos.y != odd->new_pos.y))
{
fprintf(stderr, "CONF_RANDR: CRTC %x is moved to %dx%d\n", odd->crtc->xid, odd->new_pos.x, odd->new_pos.y);
fprintf(stderr, "CONF_RANDR: CRTC %d is moved to %dx%d\n", odd->crtc->xid, odd->new_pos.x, odd->new_pos.y);
if (!ecore_x_randr_crtc_pos_set(cfd->con->manager->root, odd->crtc->xid, odd->new_pos.x, odd->new_pos.y))
{
arrangement_failed = EINA_TRUE;

View File

@ -281,7 +281,7 @@ dialog_subdialog_orientation_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dia
orientation = e_config_runtime_info->gui.subdialogs.orientation.radio_val;
fprintf(stderr, "CONF_RANDR: Change orientation of crtc %x to %d.\n", output_dialog_data->crtc->xid, orientation);
fprintf(stderr, "CONF_RANDR: Change orientation of crtc %d to %d.\n", output_dialog_data->crtc->xid, orientation);
if (ecore_x_randr_crtc_orientation_set(cfd->con->manager->root, output_dialog_data->crtc->xid, orientation))
{

View File

@ -12,6 +12,8 @@
#define Ecore_X_Randr_Unset -1
#endif
#define E_RANDR_12 (e_randr_screen_info.rrvd_info.randr_info_12)
Evas_Object *dialog_subdialog_policies_basic_create_widgets(Evas *canvas);
Eina_Bool dialog_subdialog_policies_create_data(E_Config_Dialog_Data *e_config_runtime_info);
Eina_Bool dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
@ -198,7 +200,7 @@ _dialog_subdialog_policies_policy_mouse_up_cb(void *data __UNUSED__, Evas *e __U
Eina_Bool
dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata __UNUSED__)
{
if (!e_randr_screen_info || !e_config_runtime_info->gui.selected_output_dd) return EINA_FALSE;
if (!E_RANDR_12 || !e_config_runtime_info->gui.selected_output_dd) return EINA_FALSE;
//policy update
e_config_runtime_info->gui.selected_output_dd->previous_policy = e_config_runtime_info->gui.selected_output_dd->new_policy;
@ -211,7 +213,7 @@ dialog_subdialog_policies_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Co
Eina_Bool
dialog_subdialog_policies_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
if (!e_randr_screen_info || !cfdata || !cfdata->gui.selected_output_dd || !cfdata->gui.selected_output_dd->output) return EINA_FALSE;
if (!E_RANDR_12 || !cfdata || !cfdata->gui.selected_output_dd || !cfdata->gui.selected_output_dd->output) return EINA_FALSE;
return (int)cfdata->gui.selected_output_dd->previous_policy != (int)cfdata->gui.subdialogs.policies.radio_val;
}

View File

@ -26,6 +26,7 @@ void dialog_subdialog_resolutions_keep_changes(E_Config_Dialog_Data *cfd
void dialog_subdialog_resolutions_discard_changes(E_Config_Dialog_Data *cfdata);
extern E_Config_Dialog_Data *e_config_runtime_info;
static Ecore_X_Randr_Mode_Info disabled_mode = {.xid = Ecore_X_Randr_None};
Eina_Bool
dialog_subdialog_resolutions_create_data(E_Config_Dialog_Data *cfdata)
@ -50,10 +51,10 @@ dialog_subdialog_resolutions_create_data(E_Config_Dialog_Data *cfdata)
mi = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->crtc->outputs_common_modes));
odd->previous_mode = mi;
}
else if (odd->output)
else if (odd->output && odd->output->monitor)
{
odd->previous_mode = NULL;
odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->preferred_modes));
odd->preferred_mode = (Ecore_X_Randr_Mode_Info *)eina_list_data_get(eina_list_last(odd->output->monitor->preferred_modes));
}
}
@ -80,9 +81,9 @@ dialog_subdialog_resolutions_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dia
{
//Apply new mode
Ecore_X_Randr_Mode_Info *selected_mode;
Ecore_X_ID selected_mode_xid;
Ecore_X_Randr_Mode mode;
E_Config_Randr_Dialog_Output_Dialog_Data *output_dialog_data;
Ecore_X_Randr_Output *output = NULL;
Ecore_X_Randr_Output *outputs = NULL;
E_Randr_Crtc_Info *crtc_info = NULL, *crtc_iter;
Eina_List *iter;
int noutputs = Ecore_X_Randr_Unset;
@ -101,8 +102,8 @@ dialog_subdialog_resolutions_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dia
else if (output_dialog_data->output)
{
//CRTC not assigned yet. Let's try to find a non occupied one.
fprintf(stderr, "CONF_RANDR: Trying to find a CRTC for output %x, %d crtcs are possible.\n", output_dialog_data->output->xid, eina_list_count(output_dialog_data->output->possible_crtcs));
output = &output_dialog_data->output->xid;
fprintf(stderr, "CONF_RANDR: Trying to find a CRTC for output %d, %d crtcs are possible.\n", output_dialog_data->output->xid, eina_list_count(output_dialog_data->output->possible_crtcs));
outputs = &output_dialog_data->output->xid;
noutputs = 1;
EINA_LIST_FOREACH(output_dialog_data->output->possible_crtcs, iter, crtc_iter)
{
@ -122,22 +123,24 @@ dialog_subdialog_resolutions_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dia
//get selected mode
if ((selected_mode = (Ecore_X_Randr_Mode_Info *)e_widget_ilist_selected_data_get(e_config_runtime_info->gui.subdialogs.resolutions.dialog)))
{
selected_mode_xid = selected_mode->xid;
mode = selected_mode->xid;
}
else
if (selected_mode == crtc_info->current_mode)
{
selected_mode_xid = Ecore_X_Randr_None;
if (output_dialog_data->output && (eina_list_data_find(crtc_info->outputs, output_dialog_data->output)))
{
fprintf(stderr, "CONF_RANDR: Nothing to be done for output %s.\n", output_dialog_data->output->name);
return EINA_TRUE;
}
fprintf(stderr, "CONF_RANDR: Resolution remains unchanged for CRTC %d.\n", crtc_info->xid);
return EINA_TRUE;
}
fprintf(stderr, "CONF_RANDR: Changing mode of crtc %d to %d.\n", crtc_info->xid, mode);
fprintf(stderr, "CONF_RANDR: Change mode of crtc %x to %x.\n", crtc_info->xid, selected_mode_xid);
if (ecore_x_randr_crtc_mode_set(cfd->con->manager->root, crtc_info->xid, output, noutputs, selected_mode_xid))
if (ecore_x_randr_crtc_mode_set(cfd->con->manager->root, crtc_info->xid, outputs, noutputs, mode))
{
//remove unused space
ecore_x_randr_screen_reset(cfd->con->manager->root);
//update information
if (!output_dialog_data->crtc)
output_dialog_data->crtc = crtc_info;
output_dialog_data->crtc = crtc_info;
output_dialog_data->new_mode = selected_mode;
return EINA_TRUE;
}
@ -157,7 +160,7 @@ dialog_subdialog_resolutions_basic_check_changed(E_Config_Dialog *cfd __UNUSED__
}
void
dialog_subdialog_resolutions_update_list(Evas_Object *crtc)
dialog_subdialog_resolutions_update_list(Evas_Object *rep)
{
Eina_List *iter, *modelist = NULL;
E_Config_Randr_Dialog_Output_Dialog_Data *output_dialog_data;
@ -165,16 +168,13 @@ dialog_subdialog_resolutions_update_list(Evas_Object *crtc)
char resolution_text[RESOLUTION_TXT_MAX_LENGTH];
float rate;
int str_ret, i = 0;
Eina_Bool enable = EINA_FALSE;
e_widget_ilist_freeze(e_config_runtime_info->gui.subdialogs.resolutions.dialog);
e_widget_ilist_clear(e_config_runtime_info->gui.subdialogs.resolutions.dialog);
if (!crtc)
{
e_widget_disabled_set(e_config_runtime_info->gui.subdialogs.resolutions.dialog, EINA_TRUE);
return;
}
if (!(output_dialog_data = evas_object_data_get(crtc, "rep_info")))
return;
if (!rep || !(output_dialog_data = evas_object_data_get(rep, "rep_info")))
goto _go_and_return;
//select correct mode list
if (output_dialog_data->crtc)
@ -182,12 +182,15 @@ dialog_subdialog_resolutions_update_list(Evas_Object *crtc)
current_mode = output_dialog_data->crtc->current_mode;
modelist = output_dialog_data->crtc->outputs_common_modes;
}
else if (output_dialog_data->output)
else if (output_dialog_data->output && output_dialog_data->output->monitor)
{
current_mode = NULL;
if (output_dialog_data->output->modes)
modelist = output_dialog_data->output->modes;
if (output_dialog_data->output->monitor->modes)
modelist = output_dialog_data->output->monitor->modes;
}
if (!modelist)
goto _go_and_return;
EINA_LIST_FOREACH(modelist, iter, mode_info)
{
//calculate refresh rate
@ -213,10 +216,13 @@ dialog_subdialog_resolutions_update_list(Evas_Object *crtc)
}
//append 'disabled' mode
e_widget_ilist_append(e_config_runtime_info->gui.subdialogs.resolutions.dialog, NULL, _("Disabled"), NULL, NULL, NULL);
e_widget_ilist_append(e_config_runtime_info->gui.subdialogs.resolutions.dialog, NULL, _("Disabled"), NULL, &disabled_mode, NULL);
//reenable widget
e_widget_disabled_set(e_config_runtime_info->gui.subdialogs.resolutions.dialog, EINA_FALSE);
enable = EINA_TRUE;
_go_and_return:
e_widget_disabled_set(e_config_runtime_info->gui.subdialogs.resolutions.dialog, enable);
e_widget_ilist_go(e_config_runtime_info->gui.subdialogs.resolutions.dialog);
e_widget_ilist_thaw(e_config_runtime_info->gui.subdialogs.resolutions.dialog);
}

View File

@ -31,7 +31,7 @@ e_modapi_init(E_Module *m)
#undef D
#define T Config
#define D conf_edd
E_CONFIG_VAL(D, T, display_disabled_outputs, UCHAR);
E_CONFIG_VAL(D, T, display_disconnected_outputs, UCHAR);
#undef T
#undef D
@ -39,7 +39,7 @@ e_modapi_init(E_Module *m)
if (!randr_dialog_config)
{
randr_dialog_config = E_NEW(Config, 1);
randr_dialog_config->display_disabled_outputs = EINA_FALSE;
randr_dialog_config->display_disconnected_outputs = EINA_FALSE;
}
return m;