Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_atoms.c e_atoms.h e_border.c e_manager.c 


Log Message:


fix restart with hidden windows

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_atoms.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_atoms.c   15 Feb 2005 12:11:31 -0000      1.8
+++ e_atoms.c   12 May 2005 08:50:52 -0000      1.9
@@ -10,6 +10,7 @@
 Ecore_X_Atom E_ATOM_DESK = 0;
 Ecore_X_Atom E_ATOM_MAPPED = 0;
 Ecore_X_Atom E_ATOM_SHADE_DIRECTION = 0;
+Ecore_X_Atom E_ATOM_HIDDEN = 0;
 
 /* externally accessible functions */
 int
@@ -21,6 +22,7 @@
    E_ATOM_DESK = ecore_x_atom_get("__E_WINDOW_DESK");
    E_ATOM_MAPPED = ecore_x_atom_get("__E_WINDOW_MAPPED");
    E_ATOM_SHADE_DIRECTION = ecore_x_atom_get("__E_WINDOW_SHADE_DIRECTION");
+   E_ATOM_HIDDEN = ecore_x_atom_get("__E_WINDOW_HIDDEN");
    return 1;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_atoms.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_atoms.h   15 Feb 2005 12:11:31 -0000      1.9
+++ e_atoms.h   12 May 2005 08:50:52 -0000      1.10
@@ -15,6 +15,7 @@
 extern EAPI Ecore_X_Atom E_ATOM_DESK;
 extern EAPI Ecore_X_Atom E_ATOM_MAPPED;
 extern EAPI Ecore_X_Atom E_ATOM_SHADE_DIRECTION;
+extern EAPI Ecore_X_Atom E_ATOM_HIDDEN;
 
 EAPI int    e_atoms_init(void);
 EAPI int    e_atoms_shutdown(void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.192
retrieving revision 1.193
diff -u -3 -r1.192 -r1.193
--- e_border.c  12 May 2005 03:32:48 -0000      1.192
+++ e_border.c  12 May 2005 08:50:52 -0000      1.193
@@ -412,6 +412,7 @@
 {
    E_Event_Border_Show *ev;
    unsigned int visible;
+   unsigned int hidden;
 
    E_OBJECT_CHECK(bd);
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
@@ -426,6 +427,8 @@
    visible = 1;
    ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MAPPED, &visible, 1);
    ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_MANAGED, &visible, 1);
+   hidden = 0;
+   ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_HIDDEN, &hidden, 1);
 
    ev = calloc(1, sizeof(E_Event_Border_Show));
    ev->border = bd;
@@ -1483,7 +1486,14 @@
        e_object_del(E_OBJECT(bd));
      }
 #endif
-   if (bd->visible) bd->hidden = 1;
+   if (bd->visible)
+     {
+       unsigned int hidden;
+       
+       bd->hidden = 1;
+       hidden = 1;
+       ecore_x_window_prop_card32_set(bd->client.win, E_ATOM_HIDDEN, &hidden, 
1);
+     }
    e_border_hide(bd, 1);
    return 1;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_manager.c 30 Apr 2005 02:26:41 -0000      1.21
+++ e_manager.c 12 May 2005 08:50:53 -0000      1.22
@@ -156,17 +156,20 @@
                                            deskxy[0],
                                            deskxy[1]);
 
-                 bd = e_border_new(con, windows[i], 1);
-                 if (bd)
+                 ret = ecore_x_window_prop_card32_get(windows[i],
+                                                      E_ATOM_HIDDEN,
+                                                      &ret_val, 1);
+                 if (!((ret == 1) && (ret_val)))
                    {
-                      /* FIXME:
-                       * It's enough to set the desk, the zone will
-                       * be set according to the desk */
-                      if (zone)
-                        e_border_zone_set(bd, zone);
-
-                      if (desk)
-                        e_border_desk_set(bd, desk);
+                      bd = e_border_new(con, windows[i], 1);
+                      if (bd)
+                        {
+                           /* FIXME:
+                            * It's enough to set the desk, the zone will
+                            * be set according to the desk */
+                           if (zone) e_border_zone_set(bd, zone);
+                           if (desk) e_border_desk_set(bd, desk);
+                        }
                    }
               }
             else if ((att.visible) && (!att.override) &&




-------------------------------------------------------
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=7393&alloc_id=16281&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to