Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_zone.c e_zone.h 


Log Message:
Always show edge windows, prepare for edge events to show shelves.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -3 -r1.123 -r1.124
--- e_zone.c    17 Oct 2007 11:06:59 -0000      1.123
+++ e_zone.c    22 Nov 2007 19:46:54 -0000      1.124
@@ -62,10 +62,18 @@
    zone->num = num;
    zone->id = id;
 
-   zone->flip.left = ecore_x_window_input_new(con->win, zone->x, zone->y, 1, 
zone->h);
-   zone->flip.right = ecore_x_window_input_new(con->win, zone->x + zone->w - 
1, zone->y, 1, zone->h);
-   zone->flip.top = ecore_x_window_input_new(con->win, zone->x + 1, zone->y, 
zone->w - 2, 1);
-   zone->flip.bottom = ecore_x_window_input_new(con->win, zone->x + 1, zone->y 
+ zone->h - 1, zone->w - 2, 1);
+   zone->edge.left = ecore_x_window_input_new(con->win, zone->x, zone->y, 1, 
zone->h);
+   ecore_x_window_show(zone->edge.left);
+   e_container_window_raise(zone->container, zone->edge.left, 999);
+   zone->edge.right = ecore_x_window_input_new(con->win, zone->x + zone->w - 
1, zone->y, 1, zone->h);
+   ecore_x_window_show(zone->edge.right);
+   e_container_window_raise(zone->container, zone->edge.right, 999);
+   zone->edge.top = ecore_x_window_input_new(con->win, zone->x + 1, zone->y, 
zone->w - 2, 1);
+   ecore_x_window_show(zone->edge.top);
+   e_container_window_raise(zone->container, zone->edge.top, 999);
+   zone->edge.bottom = ecore_x_window_input_new(con->win, zone->x + 1, zone->y 
+ zone->h - 1, zone->w - 2, 1);
+   ecore_x_window_show(zone->edge.bottom);
+   e_container_window_raise(zone->container, zone->edge.bottom, 999);
 
    zone->handlers = evas_list_append(zone->handlers,
                                     
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN,
@@ -160,10 +168,10 @@
    ev->zone = zone;
    ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, 
_e_zone_event_move_resize_free, NULL);
 
-   ecore_x_window_move_resize(zone->flip.left, zone->x, zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.top, zone->x + 1, zone->y, zone->w - 
2, 1);
-   ecore_x_window_move_resize(zone->flip.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
+   ecore_x_window_move_resize(zone->edge.left, zone->x, zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.top, zone->x + 1, zone->y, zone->w - 
2, 1);
+   ecore_x_window_move_resize(zone->edge.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
 }
 
 EAPI void
@@ -185,10 +193,10 @@
    ev->zone = zone;
    ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, 
_e_zone_event_move_resize_free, NULL);
 
-   ecore_x_window_move_resize(zone->flip.left, zone->x, zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.top, zone->x + 1, zone->y, zone->w - 
2, 1);
-   ecore_x_window_move_resize(zone->flip.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
+   ecore_x_window_move_resize(zone->edge.left, zone->x, zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.top, zone->x + 1, zone->y, zone->w - 
2, 1);
+   ecore_x_window_move_resize(zone->edge.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
 }
 
 EAPI void
@@ -218,10 +226,10 @@
    ev->zone = zone;
    ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, 
_e_zone_event_move_resize_free, NULL);
 
-   ecore_x_window_move_resize(zone->flip.left, zone->x, zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
-   ecore_x_window_move_resize(zone->flip.top, zone->x + 1, zone->y, zone->w - 
2, 1);
-   ecore_x_window_move_resize(zone->flip.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
+   ecore_x_window_move_resize(zone->edge.left, zone->x, zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.right, zone->x + zone->w - 1, 
zone->y, 1, zone->h);
+   ecore_x_window_move_resize(zone->edge.top, zone->x + 1, zone->y, zone->w - 
2, 1);
+   ecore_x_window_move_resize(zone->edge.bottom, zone->x + 1, zone->y + 
zone->h - 1, zone->w - 2, 1);
 } 
 
 EAPI void
@@ -581,10 +589,10 @@
                  E_Zone *zone;
                  
                  zone = lll->data;
-                 ecore_x_window_hide(zone->flip.left);
-                 ecore_x_window_hide(zone->flip.right);
-                 ecore_x_window_hide(zone->flip.top);
-                 ecore_x_window_hide(zone->flip.bottom);
+                 ecore_x_window_hide(zone->edge.left);
+                 ecore_x_window_hide(zone->edge.right);
+                 ecore_x_window_hide(zone->edge.top);
+                 ecore_x_window_hide(zone->edge.bottom);
               }
          }
      }
@@ -608,7 +616,10 @@
                  E_Zone *zone;
                  
                  zone = lll->data;
-                 _e_zone_update_flip(zone);
+                 ecore_x_window_show(zone->edge.left);
+                 ecore_x_window_show(zone->edge.right);
+                 ecore_x_window_show(zone->edge.top);
+                 ecore_x_window_show(zone->edge.bottom);
               }
          }
      }
@@ -765,25 +776,25 @@
    ev = event;
    zone = data;
 
-   if (ev->win == zone->flip.top)
+   if ((ev->win == zone->edge.top) && (zone->flip.top))
      {
        if (!zone->flip.timer)
          zone->flip.timer = ecore_timer_add(e_config->edge_flip_timeout, 
_e_zone_cb_timer, zone);
        zone->flip.direction = E_DIRECTION_UP;
      }
-   else if (ev->win == zone->flip.right)
+   else if ((ev->win == zone->edge.right) && (zone->flip.right))
      {
        if (!zone->flip.timer)
          zone->flip.timer = ecore_timer_add(e_config->edge_flip_timeout, 
_e_zone_cb_timer, zone);
        zone->flip.direction = E_DIRECTION_RIGHT;
      }
-   else if (ev->win == zone->flip.bottom)
+   else if ((ev->win == zone->edge.bottom) && (zone->flip.bottom))
      {
        if (!zone->flip.timer)
          zone->flip.timer = ecore_timer_add(e_config->edge_flip_timeout, 
_e_zone_cb_timer, zone);
        zone->flip.direction = E_DIRECTION_DOWN;
      }
-   else if (ev->win == zone->flip.left)
+   else if ((ev->win == zone->edge.left) && (zone->flip.left))
      {
        if (!zone->flip.timer)
          zone->flip.timer = ecore_timer_add(e_config->edge_flip_timeout, 
_e_zone_cb_timer, zone);
@@ -801,10 +812,10 @@
    ev = event;
    zone = data;
 
-   if ((ev->win == zone->flip.top) ||
-       (ev->win == zone->flip.bottom) ||
-       (ev->win == zone->flip.left) ||
-       (ev->win == zone->flip.right))
+   if ((ev->win == zone->edge.top) ||
+       (ev->win == zone->edge.bottom) ||
+       (ev->win == zone->edge.left) ||
+       (ev->win == zone->edge.right))
      {
        if (zone->flip.timer)
          ecore_timer_del(zone->flip.timer);
@@ -903,6 +914,11 @@
 static void
 _e_zone_update_flip(E_Zone *zone)
 {
+   zone->flip.left = 0;
+   zone->flip.right = 0;
+   zone->flip.top = 0;
+   zone->flip.bottom = 0;
+
    if (e_config->edge_flip_moving)
      {
        /* if we have only 1 row we can flip up/down even if we have xinerama */
@@ -935,43 +951,16 @@
          }
 
        if (one_col && E_ZONE_FLIP_LEFT(zone))
-         {
-            ecore_x_window_show(zone->flip.left);
-            e_container_window_raise(zone->container, zone->flip.left, 999);
-         }
-       else
-         ecore_x_window_hide(zone->flip.left);
+         zone->flip.left = 1;
        
        if (one_col && E_ZONE_FLIP_RIGHT(zone))
-         {
-            ecore_x_window_show(zone->flip.right);
-            e_container_window_raise(zone->container, zone->flip.right, 999);
-         }
-       else
-         ecore_x_window_hide(zone->flip.right);
+         zone->flip.right = 1;
        
        if (one_row && E_ZONE_FLIP_UP(zone))
-         {
-            ecore_x_window_show(zone->flip.top);
-            e_container_window_raise(zone->container, zone->flip.top, 999);
-         }
-       else
-         ecore_x_window_hide(zone->flip.top);
+         zone->flip.top = 1;
        
        if (one_row && E_ZONE_FLIP_DOWN(zone))
-         {
-            ecore_x_window_show(zone->flip.bottom);
-            e_container_window_raise(zone->container, zone->flip.bottom, 999);
-         }
-       else
-         ecore_x_window_hide(zone->flip.bottom);
-     }
-   else
-     {
-       ecore_x_window_hide(zone->flip.left);
-       ecore_x_window_hide(zone->flip.right);
-       ecore_x_window_hide(zone->flip.top);
-       ecore_x_window_hide(zone->flip.bottom);
+         zone->flip.bottom = 1;
      }
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- e_zone.h    17 Oct 2007 11:06:59 -0000      1.43
+++ e_zone.h    22 Nov 2007 19:46:54 -0000      1.44
@@ -3,6 +3,14 @@
  */
 #ifdef E_TYPEDEFS
 
+typedef enum _E_Zone_Edge
+{
+   E_ZONE_LEFT,
+   E_ZONE_RIGHT,
+   E_ZONE_TOP,
+   E_ZONE_BOTTOM
+} E_Zone_Edge;
+
 typedef struct _E_Zone     E_Zone;
 
 typedef struct _E_Event_Zone_Desk_Count_Set     E_Event_Zone_Desk_Count_Set;
@@ -41,10 +49,17 @@
    Evas_List           *handlers;
 
    struct {
-       Ecore_X_Window top, right, bottom, left;
+       unsigned char top : 1;
+       unsigned char right : 1;
+       unsigned char bottom : 1;
+       unsigned char left : 1;
        Ecore_Timer *timer;
        E_Direction direction;
    } flip;
+
+   struct {
+       Ecore_X_Window top, right, bottom, left;
+   } edge;
    
    E_Action *cur_mouse_action;
    Evas_List *popups;



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to