Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_zone.c Log Message: fix segv with orphaned windows when their desk goes bye bye. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -3 -r1.109 -r1.110 --- e_zone.c 21 Feb 2007 00:24:53 -0000 1.109 +++ e_zone.c 2 Mar 2007 14:45:09 -0000 1.110 @@ -337,7 +337,7 @@ { E_Desk **new_desks; E_Desk *desk, *new_desk; - int x, y, xx, yy, moved; + int x, y, xx, yy, moved, nx, ny; E_Border *bd; E_Event_Zone_Desk_Count_Set *ev; E_Border_List *bl; @@ -350,6 +350,28 @@ yy = y_count; if (yy < 1) yy = 1; + moved = 0; + if (zone->desk_x_current >= xx) moved = 1; + if (zone->desk_y_current >= yy) moved = 1; + if (moved) + { + nx = zone->desk_x_current; + ny = zone->desk_y_current; + if (zone->desk_x_current >= xx) nx = xx - 1; + if (zone->desk_y_current >= yy) ny = yy - 1; + printf("show desk %i,%i\n", nx, ny); + e_desk_show(e_desk_at_xy_get(zone, nx, ny)); + } + else + { + desk = e_desk_current_get(zone); + if (desk) + { + desk->visible = 0; + e_desk_show(desk); + } + } + new_desks = malloc(xx * yy * sizeof(E_Desk *)); for (x = 0; x < xx; x++) { @@ -410,19 +432,6 @@ zone->desk_x_count = xx; zone->desk_y_count = yy; - moved = 0; - if (zone->desk_x_current >= xx) - moved = 1; - if (zone->desk_y_current >= yy) - moved = 1; - if (moved) - e_desk_show(e_desk_at_xy_get(zone, xx - 1, yy - 1)); - else - { - desk = e_desk_current_get(zone); - desk->visible = 0; - e_desk_show(desk); - } e_config->zone_desks_x_count = xx; e_config->zone_desks_y_count = yy; e_config_save_queue(); ------------------------------------------------------------------------- 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