Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_gadman.c e_gadman.h e_main.c 


Log Message:


fix segv with gaim...

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -3 -r1.74 -r1.75
--- e_border.c  17 Jan 2005 05:39:18 -0000      1.74
+++ e_border.c  19 Jan 2005 14:31:39 -0000      1.75
@@ -159,13 +159,6 @@
    e_object_del_func_set(E_OBJECT(bd), E_OBJECT_CLEANUP_FUNC(_e_border_del));
    
    printf("##- NEW CLIENT 0x%x\n", win);
-   bd->container = con;
-   bd->zone = e_zone_current_get(con);
-   bd->zone->clients = evas_list_append(bd->zone->clients, bd);
-
-   bd->desk = e_desk_current_get(bd->zone);
-   bd->desk->clients = evas_list_append(bd->desk->clients, bd);
-  
    bd->w = 1;
    bd->h = 1;
    bd->win = ecore_x_window_override_new(bd->container->win, 0, 0, bd->w, 
bd->h);
@@ -276,6 +269,11 @@
    bd->new_client = 1;
    bd->changed = 1;
    
+   bd->container = con;
+   bd->zone = e_zone_current_get(con);
+   bd->zone->clients = evas_list_append(bd->zone->clients, bd);
+   bd->desk = e_desk_current_get(bd->zone);
+   bd->desk->clients = evas_list_append(bd->desk->clients, bd);
    con->clients = evas_list_append(con->clients, bd);
    borders = evas_list_append(borders, bd);
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_gadman.c  18 Jan 2005 15:40:53 -0000      1.8
+++ e_gadman.c  19 Jan 2005 14:31:40 -0000      1.9
@@ -7,11 +7,11 @@
 /*        re-enter edit mode (cant access root menu) */
 
 /* FIXME: handle edge move/changes */
-/* FIXME: handle move resist */
-/* FIXME: handle resize resist */
 /* FIXME: handle drag from zone to zone */
 /* FIXME: handle save */
 /* FIXME: handle load */
+/* FIXME: handle move resist */
+/* FIXME: handle resize resist */
 
 /* local subsystem functions */
 static void _e_gadman_free(E_Gadman *gm);
@@ -140,7 +140,7 @@
 }
 
 void
-e_gadman_edge_set(E_Gadman_Client *gmc, E_Gadman_Edge edge)
+e_client_gadman_edge_set(E_Gadman_Client *gmc, E_Gadman_Edge edge)
 {
    E_OBJECT_CHECK(gmc);
    gmc->edge = edge;
@@ -588,28 +588,104 @@
 {
    E_Gadman_Client *gmc;
    Evas_Coord x, y;
+   int new_edge = 0;
+   int new_zone = 0;
    
    gmc = data;
    if (!gmc->moving) return;
    evas_pointer_canvas_xy_get(gmc->gadman->container->bg_evas, &x, &y);
-   if (gmc->policy & E_GADMAN_POLICY_HMOVE)
-     gmc->x = gmc->down_store_x + (x - gmc->down_x);
-   else
-     gmc->x = gmc->down_store_x;
-   if (gmc->policy & E_GADMAN_POLICY_VMOVE)
-     gmc->y = gmc->down_store_y + (y - gmc->down_y);
+   if ((gmc->policy & 0xff) == E_GADMAN_POLICY_EDGES)
+     {
+       double xr, yr;
+       E_Gadman_Edge ne;
+       
+       ne = gmc->edge;
+       xr = (double)(x - gmc->zone->x) / (double)gmc->zone->w;
+       yr = (double)(y - gmc->zone->y) / (double)gmc->zone->h;
+       
+       if ((xr + yr) <= 1.0) /* top or left */
+         {
+            if (((1.0 - yr) + xr) <= 1.0) ne = E_GADMAN_EDGE_LEFT;
+            else ne = E_GADMAN_EDGE_TOP;
+         }
+       else /* bottom or right */
+         {
+            if (((1.0 - yr) + xr) <= 1.0) ne = E_GADMAN_EDGE_BOTTOM;
+            else ne = E_GADMAN_EDGE_RIGHT;
+         }
+       
+       if (ne != gmc->edge)
+         {
+            gmc->edge = ne;
+            new_edge = 1;
+         }
+       if (gmc->edge == E_GADMAN_EDGE_LEFT)
+         {
+            gmc->x = gmc->zone->x;
+            gmc->y = gmc->down_store_y + (y - gmc->down_y);
+            if (gmc->y < gmc->zone->y)
+              gmc->y = gmc->zone->y;
+            else if ((gmc->y + gmc->h) > (gmc->zone->y + gmc->zone->h))
+              gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
+         }
+       else if (gmc->edge == E_GADMAN_EDGE_RIGHT)
+         {
+            gmc->x = gmc->zone->x + gmc->zone->w - gmc->w;
+            gmc->y = gmc->down_store_y + (y - gmc->down_y);
+            if (gmc->y < gmc->zone->y)
+              gmc->y = gmc->zone->y;
+            else if ((gmc->y + gmc->h) > (gmc->zone->y + gmc->zone->h))
+              gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
+         }
+       else if (gmc->edge == E_GADMAN_EDGE_TOP)
+         {
+            gmc->x = gmc->down_store_x + (x - gmc->down_x);
+            gmc->y = gmc->zone->y;
+            if (gmc->x < gmc->zone->x)
+              gmc->x = gmc->zone->x;
+            else if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
+              gmc->x = gmc->zone->x + gmc->zone->w - gmc->w;
+         }
+       else if (gmc->edge == E_GADMAN_EDGE_BOTTOM)
+         {
+            gmc->x = gmc->down_store_x + (x - gmc->down_x);
+            gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
+            if (gmc->x < gmc->zone->x)
+              gmc->x = gmc->zone->x;
+            else if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
+              gmc->x = gmc->zone->x + gmc->zone->w - gmc->w;
+         }
+     }
    else
-     gmc->y = gmc->down_store_y;
-   gmc->w = gmc->down_store_w;
-   gmc->h = gmc->down_store_h;
-   if (gmc->x < gmc->zone->x)
-     gmc->x = gmc->zone->x;
-   else if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
-     gmc->x = gmc->zone->x + gmc->zone->w - gmc->w;
-   if (gmc->y < gmc->zone->y)
-     gmc->y = gmc->zone->y;
-   else if ((gmc->y + gmc->h) > (gmc->zone->y + gmc->zone->h))
-     gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
+     {
+       if (gmc->policy & E_GADMAN_POLICY_HMOVE)
+         gmc->x = gmc->down_store_x + (x - gmc->down_x);
+       else
+         gmc->x = gmc->down_store_x;
+       if (gmc->policy & E_GADMAN_POLICY_VMOVE)
+         gmc->y = gmc->down_store_y + (y - gmc->down_y);
+       else
+         gmc->y = gmc->down_store_y;
+       gmc->w = gmc->down_store_w;
+       gmc->h = gmc->down_store_h;
+       if (gmc->x < gmc->zone->x)
+         gmc->x = gmc->zone->x;
+       else if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
+         gmc->x = gmc->zone->x + gmc->zone->w - gmc->w;
+       if (gmc->y < gmc->zone->y)
+         gmc->y = gmc->zone->y;
+       else if ((gmc->y + gmc->h) > (gmc->zone->y + gmc->zone->h))
+         gmc->y = gmc->zone->y + gmc->zone->h - gmc->h;
+     }
+   _e_gadman_client_geometry_to_align(gmc);
+   if (new_zone)
+     {
+       /* FIXME: callback for edge change */
+     }
+   if (new_edge)
+     {
+       /* FIXME: callback for edge change */
+     }
    _e_gadman_client_geometry_apply(gmc);
 }
 
@@ -621,7 +697,7 @@
    gmc = data;
    if (_e_gadman_client_is_being_modified(gmc)) return;
    _e_gadman_client_down_store(gmc);
-   gmc->autow = 0;
+   gmc->use_autow = 0;
    gmc->resizing_l = 1;
 }
 
@@ -632,7 +708,6 @@
    
    gmc = data;
    gmc->resizing_l = 0;
-   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -678,6 +753,7 @@
          }
      }
    _e_gadman_client_aspect_enforce(gmc, 1.0, 0.5, 1);
+   _e_gadman_client_geometry_to_align(gmc);
    _e_gadman_client_geometry_apply(gmc);
 }
 
@@ -689,7 +765,7 @@
    gmc = data;
    if (_e_gadman_client_is_being_modified(gmc)) return;
    _e_gadman_client_down_store(gmc);
-   gmc->autow = 0;
+   gmc->use_autow = 0;
    gmc->resizing_r = 1;
 }
 
@@ -700,7 +776,6 @@
    
    gmc = data;
    gmc->resizing_r = 0;
-   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -742,6 +817,7 @@
          }
      }
    _e_gadman_client_aspect_enforce(gmc, 0.0, 0.5, 1);
+   _e_gadman_client_geometry_to_align(gmc);
    _e_gadman_client_geometry_apply(gmc);
 }
 
@@ -753,7 +829,7 @@
    gmc = data;
    if (_e_gadman_client_is_being_modified(gmc)) return;
    _e_gadman_client_down_store(gmc);
-   gmc->autoh = 0;
+   gmc->use_autoh = 0;
    gmc->resizing_u = 1;
 }
 
@@ -764,7 +840,6 @@
    
    gmc = data;
    gmc->resizing_u = 0;
-   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -810,6 +885,7 @@
          }
      }
    _e_gadman_client_aspect_enforce(gmc, 0.5, 1.0, 0);
+   _e_gadman_client_geometry_to_align(gmc);
    _e_gadman_client_geometry_apply(gmc);
 }
 
@@ -821,7 +897,7 @@
    gmc = data;
    if (_e_gadman_client_is_being_modified(gmc)) return;
    _e_gadman_client_down_store(gmc);
-   gmc->autoh = 0;
+   gmc->use_autoh = 0;
    gmc->resizing_d = 1;
 }
 
@@ -832,7 +908,6 @@
    
    gmc = data;
    gmc->resizing_d = 0;
-   _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
 }
 
@@ -874,6 +949,7 @@
          }
      }
    _e_gadman_client_aspect_enforce(gmc, 0.5, 0.0, 0);
+   _e_gadman_client_geometry_to_align(gmc);
    _e_gadman_client_geometry_apply(gmc);
 }
 
@@ -899,7 +975,7 @@
      {
        if (gmc->w > gmc->maxw) gmc->w = gmc->maxw;
      }
-   gmc->autow = 0;
+   gmc->use_autow = 0;
    _e_gadman_client_aspect_enforce(gmc, 0.0, 0.5, 1);
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
@@ -919,7 +995,7 @@
        if (gmc->w > gmc->maxw) gmc->w = gmc->maxw;
      }
    gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) / 2);
-   gmc->autow = 0;
+   gmc->use_autow = 0;
    _e_gadman_client_aspect_enforce(gmc, 0.0, 0.5, 1);
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
@@ -934,7 +1010,7 @@
    gmc = data;
    if (e_menu_item_toggle_get(mi))
      {
-       gmc->autow = 1;
+       gmc->use_autow = 1;
        gmc->w = gmc->autow;
        if (gmc->w > gmc->zone->w)
          gmc->w = gmc->zone->w;
@@ -942,7 +1018,7 @@
          gmc->x = (gmc->zone->x + gmc->zone->w) - gmc->w;
      }
    else
-     gmc->autow = 0;
+     gmc->use_autow = 0;
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
@@ -972,7 +1048,7 @@
      {
        if (gmc->h > gmc->maxh) gmc->h = gmc->maxh;
      }
-   gmc->autoh = 0;
+   gmc->use_autoh = 0;
    _e_gadman_client_aspect_enforce(gmc, 0.5, 0.0, 0);
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
@@ -992,7 +1068,7 @@
        if (gmc->h > gmc->maxh) gmc->h = gmc->maxh;
      }
    gmc->y = gmc->zone->y + ((gmc->zone->h - gmc->h) / 2);
-   gmc->autoh = 0;
+   gmc->use_autoh = 0;
    _e_gadman_client_aspect_enforce(gmc, 0.5, 0.0, 0);
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
@@ -1007,7 +1083,7 @@
    gmc = data;
    if (e_menu_item_toggle_get(mi))
      {
-       gmc->autoh = 1;
+       gmc->use_autoh = 1;
        gmc->h = gmc->autoh;
        if (gmc->h > gmc->zone->h)
          gmc->h = gmc->zone->h;
@@ -1015,7 +1091,7 @@
          gmc->y = (gmc->zone->y + gmc->zone->h) - gmc->h;
      }
    else
-     gmc->autoh = 0;
+     gmc->use_autoh = 0;
    _e_gadman_client_geometry_apply(gmc);
    _e_gadman_client_geometry_to_align(gmc);
    e_gadman_client_save(gmc);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_gadman.h  18 Jan 2005 15:40:54 -0000      1.6
+++ e_gadman.h  19 Jan 2005 14:31:40 -0000      1.7
@@ -88,7 +88,7 @@
 EAPI E_Gadman_Mode    e_gadman_mode_get(E_Gadman *gm);
 EAPI E_Gadman_Client *e_gadman_client_new(E_Gadman *gm);
 EAPI void             e_gadman_client_save(E_Gadman_Client *gmc);
-EAPI void             e_gadman_edge_set(E_Gadman_Client *gmc, E_Gadman_Edge 
edge);
+EAPI void             e_gadman_client_edge_set(E_Gadman_Client *gmc, 
E_Gadman_Edge edge);
 EAPI void             e_gadman_client_load(E_Gadman_Client *gmc);
 EAPI void             e_gadman_client_domain_set(E_Gadman_Client *gmc, char 
*domain, int instance);
 EAPI void             e_gadman_client_zone_set(E_Gadman_Client *gmc, E_Zone 
*zone);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- e_main.c    18 Jan 2005 15:40:54 -0000      1.30
+++ e_main.c    19 Jan 2005 14:31:40 -0000      1.31
@@ -539,13 +539,18 @@
             E_Gadman_Client *gmc;
             
             gmc = e_gadman_client_new(con->gadman);
-            gmc->x = 100;
-            gmc->y = 100;
-            gmc->w = 150;
-            gmc->h = 150;
+            gmc->x = 20;
+            gmc->y = 0;
+            gmc->w = 200;
+            gmc->h = 100;
+            e_gadman_client_policy_set(gmc, 
+                                       E_GADMAN_POLICY_EDGES | 
+                                       E_GADMAN_POLICY_HSIZE | 
+                                       E_GADMAN_POLICY_VSIZE);
             e_gadman_client_min_size_set(gmc, 20, 20);
             e_gadman_client_auto_size_set(gmc, 200, 50);
-            e_gadman_client_aspect_set(gmc, 4.0, 4.0);
+            e_gadman_client_align_set(gmc, 0.5, 0.0);
+            e_client_gadman_edge_set(gmc, E_GADMAN_EDGE_TOP);
          }
      }
    free(roots);




-------------------------------------------------------
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

Reply via email to