Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ewins.c hints.c 


Log Message:
Remember (certain types of) dockapps as such across restart.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- ewins.c     4 Mar 2005 22:14:58 -0000       1.24
+++ ewins.c     5 Mar 2005 00:30:45 -0000       1.25
@@ -617,6 +617,7 @@
      {
        DockIt(ewin);
        ewin->props.donthide = 1;
+       ewin->focusclick = 1;
      }
 
    doslide = Conf.mapslide && !Mode.wm.startup;
@@ -1777,6 +1778,9 @@
        if (EwinIsInternal(ewin))
           continue;
 
+       if (ewin->iconified)
+          ICCCM_DeIconify(ewin);
+
        /* This makes E determine the client window stacking at exit */
        EwinInstantUnShade(ewin);
        EReparentWindow(ewin->client.win, VRoot.win,
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/hints.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- hints.c     22 Feb 2005 17:40:15 -0000      1.33
+++ hints.c     5 Mar 2005 00:30:46 -0000       1.34
@@ -333,7 +333,7 @@
 EHintsSetInfo(const EWin * ewin)
 {
    static Atom         a = 0, aa = 0;
-   CARD32              c[8];
+   int                 c[9];
 
    if (EwinIsInternal(ewin))
       return;
@@ -348,14 +348,13 @@
    c[2] = EoGetX(ewin);
    c[3] = EoGetY(ewin);
    c[4] = ewin->iconified;
-   if (ewin->iconified)
-      ICCCM_DeIconify(ewin);
    c[5] = ewin->shaded;
    c[6] = ewin->client.w;
    c[7] = ewin->client.h;
+   c[8] = ewin->docked;
+
+   ecore_x_window_prop_card32_set(ewin->client.win, a, c, 9);
 
-   XChangeProperty(disp, ewin->client.win, a, XA_CARDINAL, 32, PropModeReplace,
-                  (unsigned char *)c, 8);
    XChangeProperty(disp, ewin->client.win, aa, XA_STRING, 8, PropModeReplace,
                   (unsigned char *)ewin->normal_border->name,
                   strlen(ewin->normal_border->name) + 1);
@@ -371,11 +370,11 @@
 {
    static Atom         a = 0, aa = 0;
    Atom                a2;
-   CARD32             *c;
    char               *str;
    unsigned long       lnum, ldummy;
    int                 num, dummy;
    unsigned char      *puc;
+   int                 c[9];
 
    if (EwinIsInternal(ewin))
       return 0;
@@ -385,43 +384,42 @@
    if (!aa)
       aa = XInternAtom(disp, "ENL_INTERNAL_DATA_BORDER", False);
 
+   num = ecore_x_window_prop_card32_get(ewin->client.win, a, c, 9);
+   if (num < 8)
+      return 0;
+
+   EoSetDesk(ewin, c[0]);
+   EoSetSticky(ewin, c[1]);
+   ewin->client.x = c[2];
+   ewin->client.y = c[3];
+   ewin->iconified = c[4];
+   ewin->shaded = c[5];
+   ewin->client.w = c[6];
+   ewin->client.h = c[7];
+   if (num >= 9)               /* Compatibility */
+      ewin->docked = c[8];
+
+   ewin->client.grav = NorthWestGravity;
+   if (ewin->iconified)
+     {
+       ewin->client.start_iconified = 1;
+       ewin->iconified = 0;
+     }
+   ewin->client.already_placed = 1;
+
    puc = NULL;
-   XGetWindowProperty(disp, ewin->client.win, a, 0, 10, True, XA_CARDINAL, &a2,
-                     &dummy, &lnum, &ldummy, &puc);
-   c = (CARD32 *) puc;
+   XGetWindowProperty(disp, ewin->client.win, aa, 0, 0xffff, True,
+                     XA_STRING, &a2, &dummy, &lnum, &ldummy, &puc);
+   str = (char *)puc;
    num = (int)lnum;
-   if ((num >= 8) && (c))
-     {
-       EoSetSticky(ewin, c[1]);
-       EoSetDesk(ewin, c[0]);
-       ewin->client.x = c[2];
-       ewin->client.y = c[3];
-       ewin->client.grav = NorthWestGravity;
-       ewin->iconified = c[4];
-       ewin->shaded = c[5];
-       if (ewin->iconified)
-         {
-            ewin->client.start_iconified = 1;
-            ewin->iconified = 0;
-         }
-       ewin->client.already_placed = 1;
-       ewin->client.w = c[6];
-       ewin->client.h = c[7];
-       XFree(c);
+   if ((num > 0) && (str))
+      EwinSetBorderByName(ewin, str, 0);
+   XFree(str);
+   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, EwinGetName(ewin));
 
-       puc = NULL;
-       XGetWindowProperty(disp, ewin->client.win, aa, 0, 0xffff, True,
-                          XA_STRING, &a2, &dummy, &lnum, &ldummy, &puc);
-       str = (char *)puc;
-       num = (int)lnum;
-       if ((num > 0) && (str))
-          EwinSetBorderByName(ewin, str, 0);
-       XFree(str);
-       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, EwinGetName(ewin));
-     }
    return 0;
 }
 




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to