Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h events.c Log Message: Discard events for destroyed windows. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.506 retrieving revision 1.507 diff -u -3 -r1.506 -r1.507 --- E.h 30 Oct 2005 19:40:49 -0000 1.506 +++ E.h 2 Nov 2005 18:03:08 -0000 1.507 @@ -901,9 +901,10 @@ /* events.c */ /* Re-mapped X-events */ #define EX_EVENT_CREATE_GONE 64 -#define EX_EVENT_MAP_GONE 65 -#define EX_EVENT_UNMAP_GONE 66 -#define EX_EVENT_REPARENT_GONE 67 +#define EX_EVENT_UNMAP_GONE 65 +#define EX_EVENT_MAP_GONE 66 +#define EX_EVENT_MAPREQUEST_GONE 67 +#define EX_EVENT_REPARENT_GONE 68 #define EX_EVENT_SHAPE_NOTIFY 72 #define EX_EVENT_SCREEN_CHANGE_NOTIFY 73 =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v retrieving revision 1.105 retrieving revision 1.106 diff -u -3 -r1.105 -r1.106 --- events.c 29 Oct 2005 08:48:40 -0000 1.105 +++ events.c 2 Nov 2005 18:03:08 -0000 1.106 @@ -338,21 +338,32 @@ ev2->type = EX_EVENT_CREATE_GONE; j = -1; /* Break for() */ break; + case UnmapNotify: + if (ev2->xunmap.window != ev->xdestroywindow.window) + continue; + ev2->type = EX_EVENT_UNMAP_GONE; + break; case MapNotify: - if (ev2->xmap.window != ev->xmap.window) + if (ev2->xmap.window != ev->xdestroywindow.window) continue; ev2->type = EX_EVENT_MAP_GONE; break; - case UnmapNotify: - if (ev2->xunmap.window != ev->xunmap.window) + case MapRequest: + if (ev2->xmaprequest.window != ev->xdestroywindow.window) continue; - ev2->type = EX_EVENT_UNMAP_GONE; + ev2->type = EX_EVENT_MAPREQUEST_GONE; break; case ReparentNotify: - if (ev2->xreparent.window != ev->xreparent.window) + if (ev2->xreparent.window != ev->xdestroywindow.window) continue; ev2->type = EX_EVENT_REPARENT_GONE; break; + default: + /* Nuke all other events on a destroyed window */ + if (ev2->xany.window != ev->xdestroywindow.window) + continue; + ev2->type = 0; + break; } } break; @@ -723,10 +734,12 @@ { case EX_EVENT_CREATE_GONE: return "Create-Gone"; - case EX_EVENT_MAP_GONE: - return "Map-Gone"; case EX_EVENT_UNMAP_GONE: return "Unmap-Gone"; + case EX_EVENT_MAP_GONE: + return "Map-Gone"; + case EX_EVENT_MAPREQUEST_GONE: + return "MapRequest-Gone"; case EX_EVENT_REPARENT_GONE: return "Reparent-Gone"; case EX_EVENT_SHAPE_NOTIFY: @@ -824,8 +837,9 @@ case MapNotify: case MapRequest: case EX_EVENT_CREATE_GONE: - case EX_EVENT_MAP_GONE: case EX_EVENT_UNMAP_GONE: + case EX_EVENT_MAP_GONE: + case EX_EVENT_MAPREQUEST_GONE: Eprintf("%#08lx EV-%s ev=%#lx win=%#lx\n", ser, name, win, ev->xcreatewindow.window); break; ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs