|
From: <enl...@li...> - 2005-05-08 16:21:35
|
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)
{
|