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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs