Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_zone.c 


Log Message:
Update flip windows when desk changes.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- e_zone.c    5 May 2005 08:33:17 -0000       1.45
+++ e_zone.c    8 May 2005 16:21:27 -0000       1.46
@@ -16,10 +16,13 @@
 static int  _e_zone_cb_mouse_in(void *data, int type, void *event);
 static int  _e_zone_cb_mouse_out(void *data, int type, void *event);
 static int  _e_zone_cb_timer(void *data);
+static int  _e_zone_cb_desk_show(void *data, int type, void *event);
 static void _e_zone_update_flip(E_Zone *zone);
 
 int E_EVENT_ZONE_DESK_COUNT_SET = 0;
 
+static Evas_List *handlers = NULL;
+
 #define E_ZONE_FLIP_UP(zone) ((zone)->desk_y_current > 0)
 #define E_ZONE_FLIP_RIGHT(zone) (((zone)->desk_x_current + 1) < 
(zone)->desk_x_count)
 #define E_ZONE_FLIP_DOWN(zone) (((zone)->desk_y_current + 1) < 
(zone)->desk_y_count)
@@ -29,6 +32,9 @@
 e_zone_init(void)
 {
    E_EVENT_ZONE_DESK_COUNT_SET = ecore_event_type_new();
+
+   handlers = evas_list_append(handlers,
+                              ecore_event_handler_add(E_EVENT_DESK_SHOW, 
_e_zone_cb_desk_show, NULL));
    
    return 1;
 }
@@ -36,6 +42,17 @@
 int
 e_zone_shutdown(void)
 {
+   Evas_List *l;
+
+   for (l = handlers; l; l = l->next)
+     {
+       Ecore_Event_Handler *evh;
+
+       evh = l->data;
+       ecore_event_handler_del(evh);
+     }
+   evas_list_free(handlers);
+   handlers = NULL;
    return 1;
 }
 
@@ -556,11 +573,7 @@
    if (y < 0) y = 0;
    else if (y >= zone->desk_y_count) y = zone->desk_y_count - 1;
    desk = e_desk_at_xy_get(zone, x, y);
-   if (desk)
-     {
-       e_desk_show(desk);
-       _e_zone_update_flip(zone);
-     }
+   if (desk) e_desk_show(desk);
 }
 
 void
@@ -669,7 +682,6 @@
                {
                   e_desk_show(desk);
                   ecore_x_pointer_warp(zone->container->win, x, zone->h - 2);
-                  _e_zone_update_flip(zone);
                }
           }
         break;
@@ -681,7 +693,6 @@
                {
                   e_desk_show(desk);
                   ecore_x_pointer_warp(zone->container->win, 2, y);
-                  _e_zone_update_flip(zone);
                }
           }
         break;
@@ -693,7 +704,6 @@
                {
                   e_desk_show(desk);
                   ecore_x_pointer_warp(zone->container->win, x, 2);
-                  _e_zone_update_flip(zone);
                }
           }
         break;
@@ -705,7 +715,6 @@
                {
                   e_desk_show(desk);
                   ecore_x_pointer_warp(zone->container->win, zone->w - 2, y);
-                  _e_zone_update_flip(zone);
                }
           }
         break;
@@ -716,6 +725,16 @@
    return 0;
 }
 
+static int
+_e_zone_cb_desk_show(void *data, int type, void *event)
+{
+   E_Event_Desk_Show *ev;
+
+   ev = event;
+   _e_zone_update_flip(ev->desk->zone);
+   return 1;
+}
+
 static void
 _e_zone_update_flip(E_Zone *zone)
 {




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