Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: ewins.c Log Message: Fix window stack getting messed up due to bug in handling of particular case of misbehaving clients (yet another variant of unmap/map without waiting for withdrawal). =================================================================== RCS file: /cvs/e/e16/e/src/ewins.c,v retrieving revision 1.168 retrieving revision 1.169 diff -u -3 -r1.168 -r1.169 --- ewins.c 3 Jun 2006 14:11:33 -0000 1.168 +++ ewins.c 11 Jul 2006 03:05:30 -0000 1.169 @@ -191,19 +191,30 @@ if (ewin->state.docked) ewin->inh_wm.b.border = 1; - frame = - ECreateObjectWindow(VRoot.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, 0, 1, - _EwinGetClientWin(ewin), &argb); - ewin->o.argb = argb; - ewin->win_container = - ECreateWindow(frame, 0, 0, ewin->client.w, ewin->client.h, 0); - - EoInit(ewin, EOBJ_TYPE_EWIN, frame, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, 1, ewin->icccm.wm_name); - - EobjListFocusAdd(&ewin->o, 1); - EobjListOrderAdd(&ewin->o); + frame = EoGetWin(ewin); + if (!frame) + { + frame = + ECreateObjectWindow(VRoot.win, ewin->client.x, ewin->client.y, + ewin->client.w, ewin->client.h, 0, 1, + _EwinGetClientWin(ewin), &argb); + ewin->o.argb = argb; + ewin->win_container = + ECreateWindow(frame, 0, 0, ewin->client.w, ewin->client.h, 0); + + EoInit(ewin, EOBJ_TYPE_EWIN, frame, ewin->client.x, ewin->client.y, + ewin->client.w, ewin->client.h, 1, ewin->icccm.wm_name); + + EobjListFocusAdd(&ewin->o, 1); + EobjListOrderAdd(&ewin->o); + + EventCallbackRegister(EoGetWin(ewin), 0, + EwinHandleEventsToplevel, ewin); + EventCallbackRegister(ewin->win_container, 0, + EwinHandleEventsContainer, ewin); + EventCallbackRegister(_EwinGetClientWin(ewin), 0, + EwinHandleEventsClient, ewin); + } att.event_mask = EWIN_CONTAINER_EVENT_MASK; att.do_not_propagate_mask = ButtonPressMask | ButtonReleaseMask; @@ -221,12 +232,6 @@ Eprintf("EwinManage %#lx frame=%#lx cont=%#lx st=%d\n", _EwinGetClientXwin(ewin), EoGetXwin(ewin), _EwinGetContainerXwin(ewin), ewin->state.state); - - EventCallbackRegister(EoGetWin(ewin), 0, EwinHandleEventsToplevel, ewin); - EventCallbackRegister(ewin->win_container, 0, EwinHandleEventsContainer, - ewin); - EventCallbackRegister(_EwinGetClientWin(ewin), 0, EwinHandleEventsClient, - ewin); if (!EwinIsInternal(ewin)) { ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs