From 358dbeb1005e1149b318c1e1c48a6ae5f77d9308 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Fri, 9 Apr 2010 02:25:21 +0000 Subject: [PATCH] Add a slight timer delay for filling the ilist. This allows the window to appear first before list gets filled and gives the "appearance" of a faster dialog. SVN revision: 47862 --- .../conf_applications/e_int_config_apps.c | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/modules/conf_applications/e_int_config_apps.c b/src/modules/conf_applications/e_int_config_apps.c index 2e7a712e1..6f9d6dad9 100644 --- a/src/modules/conf_applications/e_int_config_apps.c +++ b/src/modules/conf_applications/e_int_config_apps.c @@ -11,6 +11,7 @@ struct _E_Config_Dialog_Data Evas_Object *o_list, *o_add, *o_del; Evas_Object *o_order, *o_up, *o_down; Eina_List *apps; + Ecore_Timer *fill_delay; }; /* local function prototypes */ @@ -32,6 +33,7 @@ static void _cb_add(void *data, void *data2 __UNUSED__); static void _cb_del(void *data, void *data2 __UNUSED__); static void _cb_up(void *data, void *data2 __UNUSED__); static void _cb_down(void *data, void *data2 __UNUSED__); +static int _cb_fill_delay(void *data); E_Config_Dialog * e_int_config_apps_add(E_Container *con, const char *params __UNUSED__) @@ -171,6 +173,8 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) E_Config_Data *data; Efreet_Desktop *desk; + if (cfdata->fill_delay) ecore_timer_del(cfdata->fill_delay); + if (data = cfdata->data) { if (data->title) eina_stringshare_del(data->title); @@ -196,7 +200,6 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data ot = e_widget_table_add(evas, EINA_FALSE); cfdata->o_list = e_widget_ilist_add(evas, 24, 24, NULL); e_widget_ilist_multi_select_set(cfdata->o_list, EINA_TRUE); - _fill_apps_list(cfdata); e_widget_size_min_get(cfdata->o_list, &mw, NULL); if (mw < (200 * e_scale)) mw = (200 * e_scale); e_widget_size_min_set(cfdata->o_list, mw, (75 * e_scale)); @@ -230,6 +233,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data e_widget_toolbook_page_show(otb, 0); + if (cfdata->fill_delay) ecore_timer_del(cfdata->fill_delay); + cfdata->fill_delay = ecore_timer_add(0.2, _cb_fill_delay, cfdata); + e_dialog_resizable_set(cfd->dia, 1); e_win_centered_set(cfd->dia->win, 1); return otb; @@ -599,3 +605,18 @@ _cb_down(void *data, void *data2 __UNUSED__) edje_thaw(); evas_event_thaw(evas); } + +static int +_cb_fill_delay(void *data) +{ + E_Config_Dialog_Data *cfdata; + int mw; + + if (!(cfdata = data)) return 1; + _fill_apps_list(cfdata); + e_widget_size_min_get(cfdata->o_list, &mw, NULL); + if (mw < (200 * e_scale)) mw = (200 * e_scale); + e_widget_size_min_set(cfdata->o_list, mw, (75 * e_scale)); + cfdata->fill_delay = NULL; + return 0; +}