Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_config_shelf.c e_shelf.c Log Message: Always keep shelf list sorted on id. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_shelf.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_int_config_shelf.c 2 Jul 2006 16:19:51 -0000 1.12 +++ e_int_config_shelf.c 20 Jul 2006 13:36:02 -0000 1.13 @@ -137,33 +137,21 @@ _cb_add(void *data, void *data2) { E_Config_Dialog_Data *cfdata; - Evas_List *shelves; - - cfdata = data; - while ((shelves = e_shelf_list())) - { - E_Shelf *es; - - es = shelves->data; - e_object_del(E_OBJECT(es)); - } - //// - { - E_Config_Shelf *cfg; - - cfg = E_NEW(E_Config_Shelf, 1); - cfg->name = evas_stringshare_add("shelf"); - cfg->container = cfdata->cfd->con->num; - cfg->zone = cfdata->cfd->dia->win->border->zone->num; - cfg->popup = 1; - cfg->layer = 200; - cfg->orient = E_GADCON_ORIENT_CORNER_BR; - cfg->fit_along = 1; - cfg->fit_size = 0; - cfg->style = evas_stringshare_add("default"); - cfg->size = 40; - e_config->shelves = evas_list_append(e_config->shelves, cfg); - } + E_Config_Shelf *cfg; + + cfg = E_NEW(E_Config_Shelf, 1); + cfg->name = evas_stringshare_add("shelf"); + cfg->container = cfdata->cfd->con->num; + cfg->zone = cfdata->cfd->dia->win->border->zone->num; + cfg->popup = 1; + cfg->layer = 200; + cfg->orient = E_GADCON_ORIENT_CORNER_BR; + cfg->fit_along = 1; + cfg->fit_size = 0; + cfg->style = evas_stringshare_add("default"); + cfg->size = 40; + e_config->shelves = evas_list_append(e_config->shelves, cfg); + e_shelf_config_init(); e_config_save_queue(); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- e_shelf.c 23 Jun 2006 07:20:24 -0000 1.30 +++ e_shelf.c 20 Jul 2006 13:36:02 -0000 1.31 @@ -19,9 +19,9 @@ static void _e_shelf_cb_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info); static void _e_shelf_cb_mouse_in(void *data, Evas *evas, Evas_Object *obj, void *event_info); static void _e_shelf_cb_mouse_out(void *data, Evas *evas, Evas_Object *obj, void *event_info); +static int _e_shelf_cb_id_sort(void *data1, void *data2); static Evas_List *shelves = NULL; -static int shelf_id = 0; /* externally accessible functions */ EAPI int @@ -41,6 +41,14 @@ { Evas_List *l; + while (shelves) + { + E_Shelf *es; + + es = shelves->data; + e_object_del(E_OBJECT(es)); + } + for (l = e_config->shelves; l; l = l->next) { E_Config_Shelf *cf_es; @@ -133,13 +141,11 @@ evas_object_layer_set(es->o_event, layer); evas_object_layer_set(es->o_base, layer); } - if (id < 0) - { - es->id = evas_list_count(shelves); - shelf_id++; - } + if (id <= 0) + es->id = evas_list_count(shelves); else es->id = id; + snprintf(buf, sizeof(buf), "%i", es->id); es->gadcon = e_gadcon_swallowed_new(es->name, buf, es->o_base, "items"); e_gadcon_min_size_request_callback_set(es->gadcon, @@ -161,6 +167,7 @@ es); shelves = evas_list_append(shelves, es); + shelves = evas_list_sort(shelves, -1, _e_shelf_cb_id_sort); return es; } @@ -880,4 +887,14 @@ es = data; ev = event_info; edje_object_signal_emit(es->o_base, "inactive", ""); +} + +static int +_e_shelf_cb_id_sort(void *data1, void *data2) +{ + E_Shelf *es1, *es2; + + es1 = data1; + es2 = data2; + return (es1->id) > (es2->id); } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs