Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_layout.c e_main.c 


Log Message:


fix stacking of windows in pager.. and make the contianer actually track
stacking!

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -3 -r1.178 -r1.179
--- e_border.c  5 May 2005 06:45:47 -0000       1.178
+++ e_border.c  6 May 2005 08:33:50 -0000       1.179
@@ -579,6 +579,8 @@
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
    _e_border_reorder_after(bd, NULL);
    e_container_window_raise(bd->zone->container, bd->win, bd->layer);
+   bd->zone->container->clients = 
evas_list_remove(bd->zone->container->clients, bd);
+   bd->zone->container->clients = 
evas_list_append(bd->zone->container->clients, bd);
      {
        E_Event_Border_Raise *ev;
        
@@ -597,6 +599,8 @@
    E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
    _e_border_reorder_before(bd, NULL);
    e_container_window_lower(bd->zone->container, bd->win, bd->layer);
+   bd->zone->container->clients = 
evas_list_remove(bd->zone->container->clients, bd);
+   bd->zone->container->clients = 
evas_list_prepend(bd->zone->container->clients, bd);
      {
        E_Event_Border_Lower *ev;
        
@@ -619,6 +623,8 @@
                            ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
                            0, 0, 0, 0, 0,
                            above->win, ECORE_X_WINDOW_STACK_ABOVE);
+   bd->zone->container->clients = 
evas_list_remove(bd->zone->container->clients, bd);
+   bd->zone->container->clients = 
evas_list_append_relative(bd->zone->container->clients, bd, above);
      {
        E_Event_Border_Raise *ev;
        
@@ -642,6 +648,8 @@
                            ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
                            0, 0, 0, 0, 0,
                            below->win, ECORE_X_WINDOW_STACK_BELOW);
+   bd->zone->container->clients = 
evas_list_remove(bd->zone->container->clients, bd);
+   bd->zone->container->clients = 
evas_list_prepend_relative(bd->zone->container->clients, bd, below);
      {
        E_Event_Border_Lower *ev;
        
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_layout.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_layout.c  6 May 2005 06:22:21 -0000       1.5
+++ e_layout.c  6 May 2005 08:33:50 -0000       1.6
@@ -155,12 +155,20 @@
    
    li = evas_object_data_get(obj, "e_layout_data");
    if (!li) return;
-   li->sd->items = evas_list_remove(li->sd->items, obj);
-   if (li->sd->items)
+   if (!evas_list_find(li->sd->items, obj)) return;
+   if ((li->sd->items) && (li->sd->items->next))
      {
-       evas_object_stack_above(obj, 
evas_list_data(evas_list_last(li->sd->items)));
+       li->sd->items = evas_list_remove(li->sd->items, obj);
+/* FIXME: this is some deeb subtle problem - why do i have to do a restack? */
+/*     evas_object_stack_below(obj, li->sd->items->data);*/
+       li->sd->items = evas_list_prepend(li->sd->items, obj);
+         {
+            Evas_List *l;
+            
+            for (l = li->sd->items; l; l = l->next)
+              evas_object_stack_below(l->data, li->sd->clip);
+         }
      }
-   li->sd->items = evas_list_append(li->sd->items, obj);
 }
 
 void
@@ -170,10 +178,13 @@
    
    li = evas_object_data_get(obj, "e_layout_data");
    if (!li) return;
-   li->sd->items = evas_list_remove(li->sd->items, obj);
-   if (li->sd->items)
-     evas_object_stack_below(obj, evas_list_data(li->sd->items));
-   li->sd->items = evas_list_prepend(li->sd->items, obj);
+   if (!evas_list_find(li->sd->items, obj)) return;
+   if ((li->sd->items) && (li->sd->items->next))
+     {
+       li->sd->items = evas_list_remove(li->sd->items, obj);
+       evas_object_stack_below(obj, li->sd->clip);
+       li->sd->items = evas_list_append(li->sd->items, obj);
+     }
 }
 
 void
@@ -183,10 +194,14 @@
    
    li = evas_object_data_get(obj, "e_layout_data");
    if (!li) return;
-   li->sd->items = evas_list_remove(li->sd->items, obj);
-   if (li->sd->items)
-     evas_object_stack_above(obj, below);
-   li->sd->items = evas_list_append_relative(li->sd->items, obj, below);
+   if (!evas_list_find(li->sd->items, below)) return;
+   if (!evas_list_find(li->sd->items, obj)) return;
+   if ((li->sd->items) && (li->sd->items->next))
+     {
+       li->sd->items = evas_list_remove(li->sd->items, obj);
+       evas_object_stack_below(obj, below);
+       li->sd->items = evas_list_prepend_relative(li->sd->items, obj, below);
+     }
 }
 
 void
@@ -196,10 +211,14 @@
    
    li = evas_object_data_get(obj, "e_layout_data");
    if (!li) return;
-   li->sd->items = evas_list_remove(li->sd->items, obj);
-   if (li->sd->items)
-     evas_object_stack_below(obj, above);
-   li->sd->items = evas_list_prepend_relative(li->sd->items, obj, above);
+   if (!evas_list_find(li->sd->items, above)) return;
+   if (!evas_list_find(li->sd->items, obj)) return;
+   if ((li->sd->items) && (li->sd->items->next))
+     {
+       li->sd->items = evas_list_remove(li->sd->items, obj);
+       evas_object_stack_above(obj, above);
+       li->sd->items = evas_list_append_relative(li->sd->items, obj, above);
+     }
 }
 
 void
@@ -235,10 +254,7 @@
    evas_object_data_set(obj, "e_layout_data", li);
    evas_object_event_callback_add(obj, EVAS_CALLBACK_FREE,
                                  _e_layout_smart_item_del_hook, NULL);
-   if (li->sd->items)
-     evas_object_stack_below(obj, evas_list_data(li->sd->items));
-   else
-     evas_object_stack_above(obj, sd->obj);
+   evas_object_stack_below(obj, li->sd->clip);
    if (!evas_object_visible_get(sd->clip))
      evas_object_show(sd->clip);
    return li;
@@ -375,7 +391,6 @@
       
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
-   
      {
        Evas_List *l;
        
@@ -397,10 +412,9 @@
        Evas_List *l;
        
        for (l = sd->items; l; l = l->next)
-         {
-            evas_object_raise(l->data);
-         }
+         evas_object_raise(l->data);
      }
+   evas_object_raise(sd->clip);
 }
 
 static void
@@ -410,13 +424,12 @@
    
    sd = evas_object_smart_data_get(obj);
    if (!sd) return; 
+   evas_object_lower(sd->clip);
      {
        Evas_List *l;
        
        for (l = evas_list_last(sd->items); l; l = l->prev)
-         {
-            evas_object_lower(l->data);
-         }
+         evas_object_lower(l->data);
      }
 }
                                                              
@@ -427,13 +440,12 @@
 
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
+   evas_object_stack_above(sd->clip, above);
      {
        Evas_List *l;
        
-       for (l = evas_list_last(sd->items); l; l = l->prev)
-         {
-            evas_object_stack_above(l->data, above);
-         }
+       for (l = sd->items; l; l = l->next)
+         evas_object_stack_below(l->data, sd->clip);
      }
 }
    
@@ -444,13 +456,12 @@
       
    sd = evas_object_smart_data_get(obj);
    if (!sd) return;
+   evas_object_stack_below(sd->clip, below);
      {
        Evas_List *l;
        
        for (l = sd->items; l; l = l->next)
-         {
-            evas_object_stack_below(l->data, below);
-         }
+         evas_object_stack_below(l->data, sd->clip);
      }
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -3 -r1.72 -r1.73
--- e_main.c    30 Apr 2005 07:15:22 -0000      1.72
+++ e_main.c    6 May 2005 08:33:50 -0000       1.73
@@ -215,10 +215,17 @@
    _e_main_shutdown_push(ecore_ipc_shutdown);
    /* init the evas wrapper */
    if (!ecore_evas_init())
-     {
+     { 
        e_error_message_show(_("Enlightenment cannot initialize the Evas 
system.\n"
                               "Perhaps you are out of memory?"));
        _e_main_shutdown(-1);
+    }
+   if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_SOFTWARE_X11))
+     {
+       e_error_message_show(_("Enlightenment found ecore_evas doesnt support 
Software X11\n"
+                              "rendering in Evas. Please check your 
installation of Evas and\n"
+                              "Ecore and check they support Software X11 
rendering."));
+       _e_main_shutdown(-1);
      }
    _e_main_shutdown_push(ecore_evas_shutdown);
     /* init the file system */




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to