Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_shelf.c e_zone.c e_zone.h 


Log Message:
Add edge move event, so a slide in on the edge will show a shelf.
Fix interrupt hiding on mouse in.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -3 -r1.94 -r1.95
--- e_shelf.c   14 Jun 2008 10:10:54 -0000      1.94
+++ e_shelf.c   19 Jun 2008 13:23:20 -0000      1.95
@@ -128,10 +128,11 @@
    evas_object_resize(es->o_event, es->w, es->h);
    evas_object_event_callback_add(es->o_event, EVAS_CALLBACK_MOUSE_DOWN, 
_e_shelf_cb_mouse_down, es);
 
-   /* FIXME: Need an EDGE_MOVE handler */
    es->handlers = evas_list_append(es->handlers,
         ecore_event_handler_add(E_EVENT_ZONE_EDGE_IN, _e_shelf_cb_mouse_in, 
es));
    es->handlers = evas_list_append(es->handlers,
+        ecore_event_handler_add(E_EVENT_ZONE_EDGE_MOVE, _e_shelf_cb_mouse_in, 
es));
+   es->handlers = evas_list_append(es->handlers,
         ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN, _e_shelf_cb_mouse_in, 
es));
    es->handlers = evas_list_append(es->handlers,
         ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT, 
_e_shelf_cb_mouse_out, es));
@@ -1238,10 +1239,10 @@
    es = data;
    if (es->cfg->autohide_show_action) return 1;
 
-   if (type == E_EVENT_ZONE_EDGE_IN)
+   if ((type == E_EVENT_ZONE_EDGE_IN) || (type == E_EVENT_ZONE_EDGE_MOVE))
      {
-       E_Event_Zone_Edge_In *ev;
-       int                   show = 0;
+       E_Event_Zone_Edge *ev;
+       int                show = 0;
 
        ev = event;
        if (es->zone != ev->zone) return 1;
@@ -1312,7 +1313,7 @@
        if (ev->win == es->win)
          {
             edje_object_signal_emit(es->o_base, "e,state,focused", "e");
-            if ((es->hide_animator) || (es->instant_timer))
+            if ((es->hide_animator) || (es->hide_timer) || (es->instant_timer))
               e_shelf_toggle(es, 1);
          }
      }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -3 -r1.135 -r1.136
--- e_zone.c    7 Apr 2008 19:06:13 -0000       1.135
+++ e_zone.c    19 Jun 2008 13:23:20 -0000      1.136
@@ -14,6 +14,7 @@
 static void _e_zone_event_zone_desk_count_set_free(void *data, void *ev);
 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_mouse_move(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);
@@ -28,9 +29,9 @@
 EAPI int E_EVENT_ZONE_MOVE_RESIZE = 0;
 EAPI int E_EVENT_ZONE_ADD = 0;
 EAPI int E_EVENT_ZONE_DEL = 0;
-/* FIXME: We need a EDGE_MOVE event */
 EAPI int E_EVENT_ZONE_EDGE_IN = 0;
 EAPI int E_EVENT_ZONE_EDGE_OUT = 0;
+EAPI int E_EVENT_ZONE_EDGE_MOVE = 0;
 
 #define E_ZONE_FLIP_LEFT(zone)  ((e_config->desk_flip_wrap && 
((zone)->desk_x_count > 1)) || ((zone)->desk_x_current > 0))
 #define E_ZONE_FLIP_RIGHT(zone) ((e_config->desk_flip_wrap && 
((zone)->desk_x_count > 1)) || (((zone)->desk_x_current + 1) < 
(zone)->desk_x_count))
@@ -47,6 +48,7 @@
    E_EVENT_ZONE_DEL = ecore_event_type_new();
    E_EVENT_ZONE_EDGE_IN = ecore_event_type_new();
    E_EVENT_ZONE_EDGE_OUT = ecore_event_type_new();
+   E_EVENT_ZONE_EDGE_MOVE = ecore_event_type_new();
    return 1;
 }
 
@@ -92,6 +94,9 @@
                                     
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT,
                                                             
_e_zone_cb_mouse_out, zone));
    zone->handlers = evas_list_append(zone->handlers,
+                                    
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_MOVE,
+                                                            
_e_zone_cb_mouse_move, zone));
+   zone->handlers = evas_list_append(zone->handlers,
                                     ecore_event_handler_add(E_EVENT_DESK_SHOW,
                                                             
_e_zone_cb_desk_show, zone));
 
@@ -827,7 +832,7 @@
 _e_zone_cb_mouse_in(void *data, int type, void *event)
 {
    Ecore_X_Event_Mouse_In *ev;
-   E_Event_Zone_Edge_In   *zev;
+   E_Event_Zone_Edge      *zev;
    E_Zone *zone;
 
    ev = event;
@@ -842,7 +847,7 @@
             zone->flip.direction = E_DIRECTION_UP;
          }
 
-       zev = E_NEW(E_Event_Zone_Edge_In, 1);
+       zev = E_NEW(E_Event_Zone_Edge, 1);
        zev->zone = zone;
        zev->x = ev->x;
        zev->y = ev->y;
@@ -858,7 +863,7 @@
             zone->flip.direction = E_DIRECTION_RIGHT;
          }
 
-       zev = E_NEW(E_Event_Zone_Edge_In, 1);
+       zev = E_NEW(E_Event_Zone_Edge, 1);
        zev->zone = zone;
        zev->x = ev->x;
        zev->y = ev->y;
@@ -874,7 +879,7 @@
             zone->flip.direction = E_DIRECTION_DOWN;
          }
 
-       zev = E_NEW(E_Event_Zone_Edge_In, 1);
+       zev = E_NEW(E_Event_Zone_Edge, 1);
        zev->zone = zone;
        zev->x = ev->x;
        zev->y = ev->y;
@@ -890,7 +895,7 @@
             zone->flip.direction = E_DIRECTION_LEFT;
          }
 
-       zev = E_NEW(E_Event_Zone_Edge_In, 1);
+       zev = E_NEW(E_Event_Zone_Edge, 1);
        zev->zone = zone;
        zev->x = ev->x;
        zev->y = ev->y;
@@ -904,7 +909,7 @@
 _e_zone_cb_mouse_out(void *data, int type, void *event)
 {
    Ecore_X_Event_Mouse_Out *ev;
-   E_Event_Zone_Edge_Out   *zev;
+   E_Event_Zone_Edge       *zev;
    E_Zone *zone;
 
    ev = event;
@@ -918,7 +923,7 @@
        if (zone->flip.timer)
          ecore_timer_del(zone->flip.timer);
        zone->flip.timer = NULL;
-       zev = E_NEW(E_Event_Zone_Edge_Out, 1);
+       zev = E_NEW(E_Event_Zone_Edge, 1);
        zev->zone = zone;
        zev->x = ev->x;
        zev->y = ev->y;
@@ -927,6 +932,34 @@
        else if (ev->win == zone->edge.left) zev->edge = E_ZONE_EDGE_LEFT;
        else if (ev->win == zone->edge.right) zev->edge = E_ZONE_EDGE_RIGHT;
        ecore_event_add(E_EVENT_ZONE_EDGE_OUT, zev, NULL, NULL);
+     }
+   return 1;
+}
+
+static int
+_e_zone_cb_mouse_move(void *data, int type, void *event)
+{
+   Ecore_X_Event_Mouse_Move *ev;
+   E_Event_Zone_Edge        *zev;
+   E_Zone *zone;
+
+   ev = event;
+   zone = data;
+
+   if ((ev->win == zone->edge.top) ||
+       (ev->win == zone->edge.bottom) ||
+       (ev->win == zone->edge.left) ||
+       (ev->win == zone->edge.right))
+     {
+       zev = E_NEW(E_Event_Zone_Edge, 1);
+       zev->zone = zone;
+       zev->x = ev->x;
+       zev->y = ev->y;
+       if (ev->win == zone->edge.top) zev->edge = E_ZONE_EDGE_TOP;
+       else if (ev->win == zone->edge.bottom) zev->edge = E_ZONE_EDGE_BOTTOM;
+       else if (ev->win == zone->edge.left) zev->edge = E_ZONE_EDGE_LEFT;
+       else if (ev->win == zone->edge.right) zev->edge = E_ZONE_EDGE_RIGHT;
+       ecore_event_add(E_EVENT_ZONE_EDGE_MOVE, zev, NULL, NULL);
      }
    return 1;
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.h,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -3 -r1.48 -r1.49
--- e_zone.h    19 Jan 2008 11:41:42 -0000      1.48
+++ e_zone.h    19 Jun 2008 13:23:20 -0000      1.49
@@ -19,8 +19,7 @@
 typedef struct _E_Event_Zone_Del                E_Event_Zone_Del;
 /* TODO: Move this to a general place? */
 typedef struct _E_Event_Pointer_Warp            E_Event_Pointer_Warp;
-typedef struct _E_Event_Zone_Edge               E_Event_Zone_Edge_In;
-typedef struct _E_Event_Zone_Edge               E_Event_Zone_Edge_Out;
+typedef struct _E_Event_Zone_Edge               E_Event_Zone_Edge;
 
 #else
 #ifndef E_ZONE_H
@@ -144,6 +143,7 @@
 extern EAPI int E_EVENT_POINTER_WARP;
 extern EAPI int E_EVENT_ZONE_EDGE_IN;
 extern EAPI int E_EVENT_ZONE_EDGE_OUT;
+extern EAPI int E_EVENT_ZONE_EDGE_MOVE;
 
 #endif
 #endif



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to