diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c index a9f3da4c8..3b3fd4198 100644 --- a/src/bin/e_config_dialog.c +++ b/src/bin/e_config_dialog.c @@ -23,7 +23,6 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_ { E_Config_Dialog *cfd; - cfd = E_OBJECT_ALLOC(E_Config_Dialog, E_CONFIG_DIALOG_TYPE, _e_config_dialog_free); cfd->view = view; cfd->con = con; @@ -35,7 +34,8 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_ } cfd->data = data; cfd->hide_buttons = 1; - + cfd->cfg_changed = 0; + if ((cfd->view->basic.apply_cfdata) || (cfd->view->advanced.apply_cfdata)) cfd->hide_buttons = 0; @@ -76,7 +76,6 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) pdia = cfd->dia; cfd->dia = e_dialog_new(cfd->con); cfd->dia->data = cfd; - cfd->view_dirty=0; e_object_del_attach_func_set(E_OBJECT(cfd->dia), _e_config_dialog_cb_dialog_del); e_dialog_title_set(cfd->dia, cfd->title); if (cfd->icon) e_dialog_icon_set(cfd->dia, cfd->icon, cfd->icon_size); @@ -122,8 +121,11 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) { e_dialog_button_add(cfd->dia, _("OK"), NULL, _e_config_dialog_cb_ok, cfd); e_dialog_button_add(cfd->dia, _("Apply"), NULL, _e_config_dialog_cb_apply, cfd); - e_dialog_button_disable_num_set(cfd->dia, 0, 1); - e_dialog_button_disable_num_set(cfd->dia, 1, 1); + if (!cfd->cfg_changed) + { + e_dialog_button_disable_num_set(cfd->dia, 0, 1); + e_dialog_button_disable_num_set(cfd->dia, 1, 1); + } } /* FIXME: This wont catch the window border close button, but that is probably not cancelable. */ e_dialog_button_add(cfd->dia, _("Close"), NULL, _e_config_dialog_cb_close, cfd); @@ -208,6 +210,7 @@ _e_config_dialog_cb_apply(void *data, E_Dialog *dia) } if ((ok) && (!cfd->hide_buttons)) { + cfd->cfg_changed = 0; e_dialog_button_disable_num_set(cfd->dia, 0, 1); e_dialog_button_disable_num_set(cfd->dia, 1, 1); } @@ -239,6 +242,7 @@ _e_config_dialog_cb_changed(void *data, Evas_Object *obj) cfd = data; if (!cfd->hide_buttons) { + cfd->cfg_changed = 1; e_dialog_button_disable_num_set(cfd->dia, 0, 0); e_dialog_button_disable_num_set(cfd->dia, 1, 0); } diff --git a/src/bin/e_config_dialog.h b/src/bin/e_config_dialog.h index c54ae5355..b5c71107e 100644 --- a/src/bin/e_config_dialog.h +++ b/src/bin/e_config_dialog.h @@ -43,7 +43,7 @@ struct _E_Config_Dialog int icon_size; E_Dialog *dia; void *data; - int view_dirty; + int cfg_changed; int hide_buttons; }; diff --git a/src/bin/e_int_config_desks.c b/src/bin/e_int_config_desks.c index a0741bb0b..4eedaae0e 100644 --- a/src/bin/e_int_config_desks.c +++ b/src/bin/e_int_config_desks.c @@ -148,9 +148,7 @@ _basic_create_widgets(E_Config_Dialog *cdd, Evas *evas, E_Config_Dialog_Data *cf { /* generate the core widget layout for a basic dialog */ Evas_Object *o, *ob, *of, *ot; - - _fill_data(cfdata); - + o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Number of Desktops"), 0); @@ -177,8 +175,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data /* generate the core widget layout for an advanced dialog */ Evas_Object *o, *ob, *of, *ot; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Number of Desktops"), 0); diff --git a/src/bin/e_int_config_focus.c b/src/bin/e_int_config_focus.c index 1191d988b..0ffc2a6b1 100644 --- a/src/bin/e_int_config_focus.c +++ b/src/bin/e_int_config_focus.c @@ -149,9 +149,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf /* generate the core widget layout for a basic dialog */ Evas_Object *o, *ob; E_Radio_Group *rg; - - _fill_data(cfdata); - + o = e_widget_list_add(evas, 0, 0); rg = e_widget_radio_group_new(&(cfdata->mode)); ob = e_widget_radio_add(evas, _("Click Window to Focus"), E_FOCUS_CLICK, rg); @@ -169,9 +167,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data /* generate the core widget layout for an advanced dialog */ Evas_Object *o, *ob, *of; E_Radio_Group *rg; - - _fill_data(cfdata); - + o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Focus"), 0); diff --git a/src/bin/e_int_config_menus.c b/src/bin/e_int_config_menus.c index 47b761499..c68593438 100644 --- a/src/bin/e_int_config_menus.c +++ b/src/bin/e_int_config_menus.c @@ -85,9 +85,7 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; - - _fill_data(cfdata); - + o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Menu Settings"), 0); ob = e_widget_check_add(evas, _("Show Name In Menu"), &(cfdata->menu_eap_name_show)); @@ -109,22 +107,14 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) e_config->menu_eap_comment_show = cfdata->menu_eap_comment_show; if (cfdata->menus_scroll_speed == 0) - { - e_config->menus_scroll_speed = 1.0; - } + e_config->menus_scroll_speed = 1.0; else - { - e_config->menus_scroll_speed = cfdata->menus_scroll_speed; - } + e_config->menus_scroll_speed = cfdata->menus_scroll_speed; if (cfdata->menus_fast_mouse_move_threshhold == 0) - { - e_config->menus_fast_mouse_move_threshhold = 1.0; - } - else - { - e_config->menus_fast_mouse_move_threshhold = cfdata->menus_fast_mouse_move_threshhold; - } + e_config->menus_fast_mouse_move_threshhold = 1.0; + else + e_config->menus_fast_mouse_move_threshhold = cfdata->menus_fast_mouse_move_threshhold; e_config->menus_click_drag_timeout = cfdata->menus_click_drag_timeout; e_config->menu_autoscroll_margin = cfdata->menu_autoscroll_margin; @@ -139,8 +129,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data { Evas_Object *o, *of, *ob; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Menu Settings"), 0); ob = e_widget_check_add(evas, _("Show Name In Menu"), &(cfdata->menu_eap_name_show)); diff --git a/src/bin/e_int_config_performance.c b/src/bin/e_int_config_performance.c index 0649e09af..abddbb95a 100644 --- a/src/bin/e_int_config_performance.c +++ b/src/bin/e_int_config_performance.c @@ -55,6 +55,7 @@ _create_data(E_Config_Dialog *cfd) E_Config_Dialog_Data *cfdata; cfdata = E_NEW(E_Config_Dialog_Data, 1); + _fill_data(cfdata); return cfdata; } @@ -79,8 +80,6 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; - - _fill_data(cfdata); o = e_widget_list_add(evas, 0, 0); @@ -115,8 +114,6 @@ static Evas_Object * _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *ob, *of; - - _fill_data(cfdata); o = e_widget_list_add(evas, 0, 0); diff --git a/src/bin/e_int_config_startup.c b/src/bin/e_int_config_startup.c index e83e8bced..d815137b8 100644 --- a/src/bin/e_int_config_startup.c +++ b/src/bin/e_int_config_startup.c @@ -39,6 +39,7 @@ _create_data(E_Config_Dialog *cfd) E_Config_Dialog_Data *cfdata; cfdata = E_NEW(E_Config_Dialog_Data, 1); + _fill_data(cfdata); return cfdata; } @@ -63,8 +64,6 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; - - _fill_data(cfdata); o = e_widget_list_add(evas, 0, 0); diff --git a/src/bin/e_int_config_window_display.c b/src/bin/e_int_config_window_display.c index e8e31ab46..e614fc975 100644 --- a/src/bin/e_int_config_window_display.c +++ b/src/bin/e_int_config_window_display.c @@ -137,8 +137,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf Evas_Object *o, *of, *ob; E_Radio_Group *rg; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Display"), 0); @@ -170,8 +168,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data Evas_Object *o, *ob, *of; E_Radio_Group *rg; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Window Move Geometry"), 0); diff --git a/src/bin/e_int_config_window_manipulation.c b/src/bin/e_int_config_window_manipulation.c index 2d58eb022..351ef2bf2 100644 --- a/src/bin/e_int_config_window_manipulation.c +++ b/src/bin/e_int_config_window_manipulation.c @@ -126,8 +126,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf Evas_Object *o, *of, *ob; E_Radio_Group *rg; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Miscellaneous Options"), 0); @@ -159,8 +157,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data Evas_Object *o, *ob, *of; E_Radio_Group *rg; - _fill_data(cfdata); - o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Autoraise"), 0); diff --git a/src/bin/e_int_config_winlist.c b/src/bin/e_int_config_winlist.c index f236651dd..2fff00400 100644 --- a/src/bin/e_int_config_winlist.c +++ b/src/bin/e_int_config_winlist.c @@ -83,6 +83,7 @@ _create_data(E_Config_Dialog *cfd) E_Config_Dialog_Data *cfdata; cfdata = E_NEW(E_Config_Dialog_Data, 1); + _fill_data(cfdata); return cfdata; } @@ -116,8 +117,6 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; - - _fill_data(cfdata); o = e_widget_list_add(evas, 0, 0); @@ -188,8 +187,6 @@ static Evas_Object * _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob, *ot; - - _fill_data(cfdata); o = e_widget_list_add(evas, 0, 0); ot = e_widget_table_add(evas, 0);