Hi!
This should correct the problem with borders moving from one desk to another.
Sebastian
Index: e_zone.c =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v retrieving revision 1.21 diff -u -r1.21 e_zone.c --- e_zone.c 22 Jan 2005 06:58:34 -0000 1.21 +++ e_zone.c 7 Feb 2005 11:02:04 -0000 @@ -36,14 +36,13 @@ E_Zone * e_zone_new(E_Container *con, int x, int y, int w, int h) { - E_Zone *zone; - int i; + E_Zone *zone; + char name[40]; zone = E_OBJECT_ALLOC(E_Zone, E_ZONE_TYPE, _e_zone_free); if (!zone) return NULL; zone->container = con; - zone->name = NULL; zone->x = x; zone->y = y; @@ -51,6 +50,9 @@ zone->h = h; zone->num = ++zone_count; + snprintf(name, sizeof(name), "Zone %d", zone->num); + zone->name = strdup(name); + con->zones = evas_list_append(con->zones, zone); if (1) @@ -312,6 +314,7 @@ Evas_List *client; E_Border *bd; E_Event_Zone_Desk_Count_Set *ev; + E_Event_Border_Desk_Set *evb; xx = x_count; if (xx < 1) @@ -349,7 +352,7 @@ bd = (E_Border *) client->data; new_desk->clients = evas_list_append(new_desk->clients, bd); - bd->desk = new_desk; + e_border_desk_set(bd, new_desk); client = client->next; } evas_list_free(desk->clients); @@ -371,7 +374,7 @@ bd = (E_Border *) client->data; new_desk->clients = evas_list_append(new_desk->clients, bd); - bd->desk = new_desk; + e_border_desk_set(bd, new_desk); client = client->next; } evas_list_free(desk->clients);