aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2012-05-31 10:28:00 +0000
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>2012-05-31 10:28:00 +0000
commit428d501a3003e451469949bbb536072cbcd34d68 (patch)
tree4e25fd5d13b2d1bf29a710e46ed015930dd909ff
parent38a0812f51dacfe85d04776bb646f96173805da4 (diff)
downloadenlightenment-428d501a3003e451469949bbb536072cbcd34d68.tar.gz
enlightenment-428d501a3003e451469949bbb536072cbcd34d68.tar.xz
enlightenment-428d501a3003e451469949bbb536072cbcd34d68.zip
e ticket #291: multihead and desktop switching
upon mousing into a screen edge, other connected screens will now be checked for location. if another screen is near the current edge, no binding will be triggered SVN revision: 71580
-rw-r--r--src/bin/e_zone.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c
index bbcc47ecd..2cec98d51 100644
--- a/src/bin/e_zone.c
+++ b/src/bin/e_zone.c
@@ -1535,6 +1535,8 @@ _e_zone_cb_mouse_in(void *data,
E_Event_Zone_Edge *zev;
E_Zone_Edge edge;
E_Zone *zone;
+ Eina_List *l;
+ E_Screen *scr;
ev = event;
zone = data;
@@ -1542,6 +1544,12 @@ _e_zone_cb_mouse_in(void *data,
edge = _e_zone_detect_edge(zone, ev->win);
if (edge == E_ZONE_EDGE_NONE) return ECORE_CALLBACK_PASS_ON;
+ EINA_LIST_FOREACH(e_xinerama_screens_all_get(), l, scr)
+ {
+ if (abs(scr->x - ev->x) < 2) return ECORE_CALLBACK_PASS_ON;
+ if (abs(scr->y - ev->y) < 2) return ECORE_CALLBACK_PASS_ON;
+ }
+
zev = E_NEW(E_Event_Zone_Edge, 1);
zev->zone = zone;
zev->edge = edge;