Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ewins.c 


Log Message:
Merge some functions, pager update fix.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -3 -r1.63 -r1.64
--- ewins.c     21 May 2005 20:58:18 -0000      1.63
+++ ewins.c     22 May 2005 13:41:25 -0000      1.64
@@ -510,42 +510,32 @@
 }
 
 static void
-EwinAdopt(EWin * ewin)
+Adopt(EWin * ewin)
 {
-   /* We must reparent after getting original window position */
-   EReparentWindow(ewin->client.win, ewin->win_container, 0, 0);
-   ICCCM_Adopt(ewin);
-}
-
-static EWin        *
-Adopt(EWin * ewin, Window win)
-{
-   if (ewin)
-      EwinCleanup(ewin);
-   else
-      ewin = EwinCreate(win, EWIN_TYPE_NORMAL);
-   if (!ewin)
-      return NULL;
-
    ICCCM_AdoptStart(ewin);
    ICCCM_GetTitle(ewin, 0);
-   ICCCM_GetHints(ewin, 0);
    ICCCM_GetInfo(ewin, 0);
-   ICCCM_GetColormap(ewin);
    ICCCM_GetShapeInfo(ewin);
    ICCCM_GetGeoms(ewin, 0);
-   HintsGetWindowHints(ewin);
-   SessionGetInfo(ewin, 0);
+   if (!EwinIsInternal(ewin))
+     {
+       ICCCM_GetHints(ewin, 0);
+       ICCCM_GetColormap(ewin);
+       HintsGetWindowHints(ewin);
+       SessionGetInfo(ewin, 0);
+     }
 
 #if 0                          /* Do we want this? */
-   MatchEwinToSM(ewin);
+   if (!EwinIsInternal(ewin))
+      MatchEwinToSM(ewin);
 #endif
    WindowMatchEwinOps(ewin);   /* Window matches */
    SnapshotEwinMatch(ewin);    /* Saved settings */
-   if (Mode.wm.startup)
+   if (!EwinIsInternal(ewin) && Mode.wm.startup)
       EHintsGetInfo(ewin);     /* E restart hints */
 
    EoSetName(ewin, Estrdup(ewin->icccm.wm_name));      /* FIXME */
+
    if (ewin->ewmh.opacity == 0)
       ewin->ewmh.opacity = 0xffffffff;
    EoChangeOpacity(ewin, ewin->ewmh.opacity);
@@ -553,9 +543,9 @@
    if (!ewin->no_button_grabs)
       GrabButtonGrabs(ewin);
 
-   ICCCM_MatchSize(ewin);
-
-   EwinAdopt(ewin);
+   /* We must reparent after getting original window position */
+   EReparentWindow(ewin->client.win, ewin->win_container, 0, 0);
+   ICCCM_Adopt(ewin);
 
    EwinBorderSelect(ewin);     /* Select border before calculating geometry */
    EwinGetGeometry(ewin);      /* Calculate window geometry before border 
parts */
@@ -573,61 +563,6 @@
    if (EventDebug(EDBUG_TYPE_EWINS))
       Eprintf("Adopt %#lx %s state=%d\n", ewin->client.win,
              EwinGetName(ewin), ewin->state);
-
-   return ewin;
-}
-
-static EWin        *
-AdoptInternal(Window win, Border * border, int type, void (*init) (EWin *
-                                                                  ewin,
-                                                                  void *ptr),
-             void *ptr)
-{
-   EWin               *ewin;
-
-   ewin = EwinCreate(win, type);
-   if (!ewin)
-      return NULL;
-
-   ewin->border = border;
-
-   if (init)
-      init(ewin, ptr);         /* Type specific initialisation */
-
-   ICCCM_AdoptStart(ewin);
-   ICCCM_GetTitle(ewin, 0);
-   ICCCM_GetInfo(ewin, 0);
-   ICCCM_GetShapeInfo(ewin);
-   ICCCM_GetGeoms(ewin, 0);
-
-   WindowMatchEwinOps(ewin);   /* Window matches */
-   SnapshotEwinMatch(ewin);    /* Saved settings */
-
-   EoSetName(ewin, Estrdup(ewin->icccm.wm_name));      /* FIXME */
-   if (ewin->ewmh.opacity == 0)
-      ewin->ewmh.opacity = 0xffffffff;
-   EoChangeOpacity(ewin, ewin->ewmh.opacity);
-
-   GrabButtonGrabs(ewin);
-
-   ICCCM_MatchSize(ewin);
-
-   EwinAdopt(ewin);
-
-   EwinBorderSelect(ewin);
-   EwinGetGeometry(ewin);
-   EwinBorderSetTo(ewin, NULL);
-
-   EwinEventsConfigure(ewin, 1);
-
-   if (ewin->shaded)
-      EwinInstantShade(ewin, 1);
-
-   HintsSetWindowState(ewin);
-   HintsSetWindowOpacity(ewin);
-   HintsSetClientList();
-
-   return ewin;
 }
 
 void
@@ -640,14 +575,19 @@
 
    EGrabServer();
 
-   /* adopt the new baby */
-   ewin = Adopt(ewin, win);
+   if (ewin)
+      EwinCleanup(ewin);
+   else
+      ewin = EwinCreate(win, EWIN_TYPE_NORMAL);
    if (!ewin)
      {
        Eprintf("Window is gone %#lx\n", win);
        goto done;
      }
 
+   /* adopt the new baby */
+   Adopt(ewin);
+
    /* if it hasn't been planted on a desktop - assign it the current desktop */
    desk = EoGetDesk(ewin);
 
@@ -898,18 +838,21 @@
                    void (*init) (EWin * ewin, void *ptr))
 {
    EWin               *ewin;
-   Border             *b;
 
    EGrabServer();
 
-   b = NULL;
-   if (bname)
-      b = FindItem(bname, 0, LIST_FINDBY_NAME, LIST_TYPE_BORDER);
-
-   ewin = AdoptInternal(win, b, type, init, ptr);
+   ewin = EwinCreate(win, type);
    if (!ewin)
       goto done;
 
+   if (bname)
+      ewin->border = FindItem(bname, 0, LIST_FINDBY_NAME, LIST_TYPE_BORDER);
+
+   if (init)
+      init(ewin, ptr);         /* Type specific initialisation */
+
+   Adopt(ewin);
+
 #if 0
    Eprintf("Desk=%d, layer=%d, sticky=%d, floating=%d\n",
           EoGetDesk(ewin), EoGetLayer(ewin), EoIsSticky(ewin),
@@ -956,6 +899,8 @@
       Mode.mouse_over_ewin = NULL;
    if (ewin == Mode.context_ewin)
       Mode.context_ewin = NULL;
+
+   ModulesSignal(ESIGNAL_EWIN_UNMAP, ewin);
 }
 
 static void
@@ -1068,8 +1013,6 @@
 
    EwinUnmap2(ewin);
 
-   ModulesSignal(ESIGNAL_EWIN_UNMAP, ewin);
-
    if (ewin->iconified)
       return;
 
@@ -1635,14 +1578,6 @@
        ewin = lst[i];
 
        EwinEventsConfigure(lst[i], mode);
-
-#if 0                          /* FIXME - Remove? (obsoletes EwinRefresh) */
-       /* This is a hack. Maybe we should do something with expose events. */
-       if (mode)
-          if (Mode.mode == MODE_DESKSWITCH && EoIsSticky(ewin) &&
-              EoIsShown(ewin))
-             EwinRefresh(ewin);
-#endif
      }
 }
 




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to