Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h borders.c desktops.c eobj.c events.c ewin-ops.c ewins.c focus.c groups.c icccm.c main.c menus-misc.c menus.c session.c snaps.c warp.c Log Message: Attempt to fix unmap problem, more debug, cleanups. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.342 retrieving revision 1.343 diff -u -3 -r1.342 -r1.343 --- E.h 9 Jan 2005 10:06:05 -0000 1.342 +++ E.h 9 Jan 2005 22:35:59 -0000 1.343 @@ -1662,7 +1662,7 @@ void EwinReparent(EWin * ewin, Window parent); void SyncBorderToEwin(EWin * ewin); Window EwinGetClientWin(const EWin * ewin); -const char *EwinGetTitle(const EWin * ewin); +const char *EwinGetName(const EWin * ewin); const char *EwinGetIconName(const EWin * ewin); int EwinIsOnScreen(EWin * ewin); void EwinRememberPositionSet(EWin * ewin); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v retrieving revision 1.241 retrieving revision 1.242 diff -u -3 -r1.241 -r1.242 --- borders.c 4 Jan 2005 23:22:11 -0000 1.241 +++ borders.c 9 Jan 2005 22:35:59 -0000 1.242 @@ -111,7 +111,7 @@ switch (ewin->border->part[i].flags) { case FLAG_TITLE: - title = EwinGetTitle(ewin); + title = EwinGetName(ewin); if (title) TextclassApply(ewin->border->part[i].iclass, ewb->win, ewb->w, ewb->h, ewin->active, @@ -307,7 +307,7 @@ iclass = ewin->border->part[i].iclass; tclass = ewin->border->part[i].tclass; TextSize(tclass, ewin->active, EoIsSticky(ewin), ewin->bits[i].state, - EwinGetTitle(ewin), &max, &dummywidth, + EwinGetName(ewin), &max, &dummywidth, w - (iclass->padding.top + iclass->padding.bottom)); max += iclass->padding.left + iclass->padding.right; if (h > max) @@ -354,7 +354,7 @@ iclass = ewin->border->part[i].iclass; tclass = ewin->border->part[i].tclass; TextSize(tclass, ewin->active, EoIsSticky(ewin), - ewin->bits[i].state, EwinGetTitle(ewin), &max, + ewin->bits[i].state, EwinGetName(ewin), &max, &dummyheight, h - (iclass->padding.top + iclass->padding.bottom)); max += iclass->padding.left + iclass->padding.right; =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -3 -r1.110 -r1.111 --- desktops.c 9 Jan 2005 10:06:07 -0000 1.110 +++ desktops.c 9 Jan 2005 22:36:00 -0000 1.111 @@ -475,10 +475,16 @@ Background * DeskGetBackground(int desk) { + Desk *d; + if (desk < 0 || desk >= Conf.desks.num) return NULL; - return _DeskGet(desk)->bg; + d = _DeskGet(desk); + if (!d) + return NULL; + + return d->bg; } void =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/eobj.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- eobj.c 8 Jan 2005 08:31:55 -0000 1.6 +++ eobj.c 9 Jan 2005 22:36:00 -0000 1.7 @@ -31,7 +31,7 @@ default: return "?"; case EOBJ_TYPE_EWIN: - return EwinGetTitle((EWin *) eo); + return EwinGetName((EWin *) eo); case EOBJ_TYPE_BUTTON: return ButtonGetName((Button *) eo); case EOBJ_TYPE_OVERR: =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v retrieving revision 1.71 retrieving revision 1.72 diff -u -3 -r1.71 -r1.72 --- events.c 8 Jan 2005 08:46:39 -0000 1.71 +++ events.c 9 Jan 2005 22:36:00 -0000 1.72 @@ -354,6 +354,7 @@ case MapRequest: /* 20 */ /* This is to catch badly behaving client window re-mappings */ + /* Firefox-1.0 unmap/maps during fullscreen toggle without waiting for reparent or state */ if (!FindItem (NULL, ev->xmaprequest.window, LIST_FINDBY_ID, LIST_TYPE_EWIN)) AddToFamily(ev->xmaprequest.window); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ewin-ops.c 2 Jan 2005 15:38:51 -0000 1.4 +++ ewin-ops.c 9 Jan 2005 22:36:00 -0000 1.5 @@ -184,7 +184,7 @@ if (EventDebug(EDBUG_TYPE_MOVERESIZE)) Eprintf("doMoveResizeEwin(%d) %#lx %d+%d %d*%d %d %s\n", call_depth, - ewin->client.win, x, y, w, h, flags, EwinGetTitle(ewin)); + ewin->client.win, x, y, w, h, flags, EwinGetName(ewin)); if (Mode.mode == MODE_NONE && Mode.move.check) { =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- ewins.c 7 Jan 2005 23:34:48 -0000 1.8 +++ ewins.c 9 Jan 2005 22:36:00 -0000 1.9 @@ -131,7 +131,8 @@ XShapeSelectInput(disp, win, ShapeNotifyMask); if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinCreate %#lx state=%d\n", ewin->client.win, ewin->state); + Eprintf("EwinCreate %#lx frame=%#lx state=%d\n", ewin->client.win, + EoGetWin(ewin), ewin->state); EventCallbackRegister(EoGetWin(ewin), 0, EwinHandleEventsToplevel, ewin); EventCallbackRegister(ewin->win_container, 0, EwinHandleEventsContainer, @@ -161,7 +162,8 @@ EDBUG_RETURN_; if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinDestroy %#lx state=%d\n", ewin->client.win, ewin->state); + Eprintf("EwinDestroy %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); /* FIXME - Fading */ ECompMgrWinDel(&ewin->o, True, False); @@ -364,7 +366,7 @@ done: #if 0 Eprintf("GetContextEwin %#lx %s\n", EwinGetClientWin(ewin), - EwinGetTitle(ewin)); + EwinGetName(ewin)); #endif return ewin; } @@ -376,7 +378,7 @@ return; #if 0 Eprintf("SetContextEwin %#lx %s\n", EwinGetClientWin(ewin), - EwinGetTitle(ewin)); + EwinGetName(ewin)); #endif Mode.context_ewin = ewin; } @@ -548,6 +550,10 @@ HintsSetWindowState(ewin); HintsSetClientList(); + if (EventDebug(EDBUG_TYPE_EWINS)) + Eprintf("Adopt %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); + EDBUG_RETURN(ewin); } @@ -978,7 +984,8 @@ Window win; if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinWithdraw %#lx state=%d\n", ewin->client.win, ewin->state); + Eprintf("EwinWithdraw %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); /* Park the client window on the root */ XTranslateCoordinates(disp, ewin->client.win, VRoot.win, @@ -1055,8 +1062,8 @@ EwinEventDestroy(EWin * ewin) { if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinEventDestroy %#lx state=%d\n", ewin->client.win, - ewin->state); + Eprintf("EwinEventDestroy %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); EwinDestroy(ewin); } @@ -1069,7 +1076,8 @@ ewin->state = EWIN_STATE_MAPPED; if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinEventMap %#lx state=%d\n", ewin->client.win, ewin->state); + Eprintf("EwinEventMap %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); /* If first time we may want to focus it (unless during startup) */ if (old_state == EWIN_STATE_NEW) @@ -1086,18 +1094,12 @@ if (GetZoomEWin() == ewin) Zoom(NULL); - if (ewin->state == EWIN_STATE_NEW) - { - Eprintf("EwinEventUnmap %#lx: Ignoring bogus Unmap event\n", - ewin->client.win); - return; - } - /* Set state to unknown until we can set the correct one */ ewin->state = (ewin->iconified) ? EWIN_STATE_ICONIC : EWIN_STATE_WITHDRAWN; if (EventDebug(EDBUG_TYPE_EWINS)) - Eprintf("EwinEventUnmap %#lx state=%d\n", ewin->client.win, ewin->state); + Eprintf("EwinEventUnmap %#lx %s state=%d\n", ewin->client.win, + EwinGetName(ewin), ewin->state); ActionsEnd(ewin); @@ -1430,7 +1432,7 @@ EDBUG(3, "RestackEwin"); if (EventDebug(EDBUG_TYPE_STACKING)) - Eprintf("RestackEwin %#lx %s\n", ewin->client.win, EwinGetTitle(ewin)); + Eprintf("RestackEwin %#lx %s\n", ewin->client.win, EwinGetName(ewin)); #if 0 /* FIXME - remove? */ if (EoIsFloating(ewin)) @@ -1483,7 +1485,7 @@ if (EventDebug(EDBUG_TYPE_RAISELOWER)) Eprintf("RaiseEwin(%d) %#lx %s\n", call_depth, ewin->client.win, - EwinGetTitle(ewin)); + EwinGetName(ewin)); if (EoGetWin(ewin)) { @@ -1533,7 +1535,7 @@ if (EventDebug(EDBUG_TYPE_RAISELOWER)) Eprintf("LowerEwin(%d) %#lx %s\n", call_depth, ewin->client.win, - EwinGetTitle(ewin)); + EwinGetName(ewin)); #if 0 /* FIXME - remove? */ if ((EoGetWin(ewin)) && (!EoIsFloating(ewin))) @@ -1612,7 +1614,7 @@ } const char * -EwinGetTitle(const EWin * ewin) +EwinGetName(const EWin * ewin) { const char *name; @@ -1645,7 +1647,7 @@ if (name) goto done; - return EwinGetTitle(ewin); + return EwinGetName(ewin); done: return (name && strlen(name)) ? name : NULL; @@ -1857,7 +1859,7 @@ default: #if DEBUG_EWIN_EVENTS Eprintf("EwinHandleEventsToplevel: type=%2d win=%#lx: %s\n", - ev->type, ewin->client.win, EwinGetTitle(ewin)); + ev->type, ewin->client.win, EwinGetName(ewin)); #endif break; } @@ -1887,7 +1889,7 @@ break; default: Eprintf("EwinHandleEventsContainer: type=%2d win=%#lx: %s\n", - ev->type, ewin->client.win, EwinGetTitle(ewin)); + ev->type, ewin->client.win, EwinGetName(ewin)); break; } } @@ -1917,8 +1919,15 @@ EwinEventDestroy(ewin); break; case UnmapNotify: - if (ev->xunmap.window == ewin->client.win) - EwinEventUnmap(ewin); + if (ev->xunmap.window != ewin->client.win) + break; + if (ewin->state == EWIN_STATE_NEW) + { + Eprintf("EwinEventUnmap %#lx: Ignoring bogus Unmap event\n", + ewin->client.win); + break; + } + EwinEventUnmap(ewin); break; case MapNotify: if (ev->xmap.window == ewin->client.win) @@ -1945,7 +1954,7 @@ default: #if DEBUG_EWIN_EVENTS Eprintf("EwinHandleEventsClient: type=%2d win=%#lx: %s\n", - ev->type, ewin->client.win, EwinGetTitle(ewin)); + ev->type, ewin->client.win, EwinGetName(ewin)); #endif break; } @@ -1990,6 +1999,14 @@ EwinEventCirculateRequest(NULL, ev); break; + case UnmapNotify: + /* Catch clients unmapped after MapRequest but before being reparented */ + ewin = FindItem(NULL, ev->xunmap.window, LIST_FINDBY_ID, + LIST_TYPE_EWIN); + if (ewin) + EwinEventUnmap(ewin); + break; + case DestroyNotify: /* Catch clients destroyed after MapRequest but before being reparented */ ewin = FindItem(NULL, ev->xdestroywindow.window, LIST_FINDBY_ID, =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/focus.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -3 -r1.86 -r1.87 --- focus.c 28 Dec 2004 23:46:45 -0000 1.86 +++ focus.c 9 Jan 2005 22:36:00 -0000 1.87 @@ -164,7 +164,7 @@ ButtonPressMask, ECSR_PGRAB, 1); #if 0 Eprintf("FocusEwinSetGrabs: %#lx grab %s\n", ewin->client.win, - EwinGetTitle(ewin)); + EwinGetName(ewin)); #endif } else @@ -172,7 +172,7 @@ GrabButtonRelease(AnyButton, AnyModifier, ewin->win_container); #if 0 Eprintf("FocusEwinSetGrabs: %#lx ungrab %s\n", ewin->client.win, - EwinGetTitle(ewin)); + EwinGetName(ewin)); #endif } } @@ -217,7 +217,7 @@ { if (ewin) Eprintf("FocusToEWin %#lx %s why=%d\n", ewin->client.win, - EwinGetTitle(ewin), why); + EwinGetName(ewin), why); else Eprintf("FocusToEWin None why=%d\n", why); } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/groups.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -3 -r1.58 -r1.59 --- groups.c 28 Dec 2004 23:46:45 -0000 1.58 +++ groups.c 9 Jan 2005 22:36:01 -0000 1.59 @@ -268,7 +268,7 @@ for (j = 0; j < groups[i]->num_members; j++) { strcat(group_member_strings[i], - EwinGetTitle(groups[i]->members[j])); + EwinGetName(groups[i]->members[j])); strcat(group_member_strings[i], "\n"); } } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/icccm.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- icccm.c 28 Dec 2004 23:46:45 -0000 1.80 +++ icccm.c 9 Jan 2005 22:36:01 -0000 1.81 @@ -415,7 +415,7 @@ { if (ewin) Eprintf("ICCCM_Focus %#lx %s\n", ewin->client.win, - EwinGetTitle(ewin)); + EwinGetName(ewin)); else Eprintf("ICCCM_Focus None\n"); } @@ -612,7 +612,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("Snap get icccm %#lx: %4d+%4d %4dx%4d: %s\n", ewin->client.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, EwinGetTitle(ewin)); + ewin->client.w, ewin->client.h, EwinGetName(ewin)); EDBUG_RETURN_; } @@ -1019,7 +1019,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("Snap set einf %#lx: %4d+%4d %4dx%4d: %s\n", ewin->client.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, EwinGetTitle(ewin)); + ewin->client.w, ewin->client.h, EwinGetName(ewin)); EDBUG_RETURN_; } @@ -1149,7 +1149,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("Snap get einf %#lx: %4d+%4d %4dx%4d: %s\n", ewin->client.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, EwinGetTitle(ewin)); + ewin->client.w, ewin->client.h, EwinGetName(ewin)); } EDBUG_RETURN(0); } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/main.c,v retrieving revision 1.104 retrieving revision 1.105 diff -u -3 -r1.104 -r1.105 --- main.c 31 Dec 2004 13:49:08 -0000 1.104 +++ main.c 9 Jan 2005 22:36:01 -0000 1.105 @@ -234,6 +234,9 @@ /* Unmap the clients */ MapUnmap(0); + /* Flush (get rid of unmap events) */ + XSync(disp, True); + ModulesSignal(ESIGNAL_INIT, NULL); /* Move elsewhere... */ @@ -251,10 +254,6 @@ /* Set root window cursor */ ECsrApply(ECSR_ROOT, VRoot.win); -#if 0 - CheckEvent(); -#endif - #ifdef USE_EXT_INIT_WIN /* Kill the E process owning the "init window" */ if (Mode.wm.master && init_win_ext) =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/menus-misc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- menus-misc.c 28 Dec 2004 23:46:46 -0000 1.2 +++ menus-misc.c 9 Jan 2005 22:36:01 -0000 1.3 @@ -605,11 +605,11 @@ lst = EwinListGetAll(&num); for (i = 0; i < num; i++) { - if (lst[i]->skipwinlist || !EwinGetTitle(lst[i])) + if (lst[i]->skipwinlist || !EwinGetName(lst[i])) continue; Esnprintf(s, sizeof(s), "wop %#lx focus", lst[i]->client.win); - mi = MenuItemCreate(EwinGetTitle(lst[i]), NULL, s, NULL); + mi = MenuItemCreate(EwinGetName(lst[i]), NULL, s, NULL); MenuAddItem(m, mi); } @@ -633,7 +633,7 @@ lst = EwinListGetAll(&num); for (i = 0; i < num; i++) { - if (lst[i]->skipwinlist || !EwinGetTitle(lst[i]) || + if (lst[i]->skipwinlist || !EwinGetName(lst[i]) || EoGetDesk(lst[i]) != j) continue; @@ -670,12 +670,12 @@ MenuAddItem(mm, mi); for (i = 0; i < num; i++) { - if (lst[i]->skipwinlist || !EwinGetTitle(lst[i]) || + if (lst[i]->skipwinlist || !EwinGetName(lst[i]) || EoGetDesk(lst[i]) != j) continue; Esnprintf(s, sizeof(s), "wop %#lx focus", lst[i]->client.win); - mi = MenuItemCreate(EwinGetTitle(lst[i]), NULL, s, NULL); + mi = MenuItemCreate(EwinGetName(lst[i]), NULL, s, NULL); MenuAddItem(mm, mi); } Esnprintf(s, sizeof(s), _("Desktop %i"), j); @@ -744,7 +744,7 @@ { Esnprintf(s, sizeof(s), "wop %#lx focus", lst[i]->members[j]->client.win); - mi = MenuItemCreate(EwinGetTitle(lst[i]->members[j]), NULL, + mi = MenuItemCreate(EwinGetName(lst[i]->members[j]), NULL, s, NULL); MenuAddItem(mm, mi); } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v retrieving revision 1.158 retrieving revision 1.159 diff -u -3 -r1.158 -r1.159 --- menus.c 31 Dec 2004 13:07:03 -0000 1.158 +++ menus.c 9 Jan 2005 22:36:01 -0000 1.159 @@ -391,7 +391,7 @@ Mode_menus.context_ewin = GetContextEwin(); #if 0 Eprintf("Mode_menus.context_ewin set %s\n", - EwinGetTitle(Mode_menus.context_ewin)); + EwinGetName(Mode_menus.context_ewin)); #endif ecore_x_sync(); #if 1 /* ??? */ =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/session.c,v retrieving revision 1.82 retrieving revision 1.83 diff -u -3 -r1.82 -r1.83 --- session.c 2 Jan 2005 09:42:35 -0000 1.82 +++ session.c 9 Jan 2005 22:36:01 -0000 1.83 @@ -286,7 +286,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("Snap get sess %#lx: %4d+%4d %4dx%4d: %s\n", ewin->client.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, EwinGetTitle(ewin)); + ewin->client.w, ewin->client.h, EwinGetName(ewin)); break; } } =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/snaps.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -3 -r1.74 -r1.75 --- snaps.c 28 Dec 2004 23:46:47 -0000 1.74 +++ snaps.c 9 Jan 2005 22:36:01 -0000 1.75 @@ -1245,7 +1245,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("Snap get snap %#lx: %4d+%4d %4dx%4d: %s\n", ewin->client.win, ewin->client.x, ewin->client.y, - ewin->client.w, ewin->client.h, EwinGetTitle(ewin)); + ewin->client.w, ewin->client.h, EwinGetName(ewin)); } /* make a client window conform to snapshot info */ @@ -1271,7 +1271,7 @@ if (EventDebug(EDBUG_TYPE_SNAPS)) Eprintf("RememberImportantInfoForEwin %#lx %s\n", - ewin->client.win, EwinGetTitle(ewin)); + ewin->client.win, EwinGetName(ewin)); SnapshotEwinBorder(ewin); SnapshotEwinDesktop(ewin); =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/warp.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -3 -r1.50 -r1.51 --- warp.c 28 Dec 2004 23:46:47 -0000 1.50 +++ warp.c 9 Jan 2005 22:36:01 -0000 1.51 @@ -105,7 +105,7 @@ EMapWindow(disp, warplist[warplist_num - 1].win); warplist[warplist_num - 1].ewin = lst[i]; Esnprintf(s, sizeof(s), (lst[i]->iconified) ? "[%s]" : "%s", - EwinGetTitle(lst[i])); + EwinGetName(lst[i])); warplist[warplist_num - 1].txt = strdup(s); TextSize(tc, 0, 0, 0, warplist[warplist_num - 1].txt, &ww, &hh, 17); ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs