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
This commit is contained in:
Mike Blumenkrantz 2012-05-31 10:28:00 +00:00
parent 38a0812f51
commit 428d501a30
1 changed files with 8 additions and 0 deletions

View File

@ -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;