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