From: raster Date: Fri, 14 Oct 2011 09:11:49 +0000 (+0000) Subject: and now make my modifications to multittouch this morning also work X-Git-Tag: accepted/2.0/20130306.224007~140^2~39 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33fae2251a7b2670260a31fc073d0ff9554165ef;p=profile%2Fivi%2Fecore.git and now make my modifications to multittouch this morning also work again with mpx automatically. yay! git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@64071 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/ecore_x/xlib/ecore_x_xi2.c b/src/lib/ecore_x/xlib/ecore_x_xi2.c index fecd4c2..2755c26 100644 --- a/src/lib/ecore_x/xlib/ecore_x_xi2.c +++ b/src/lib/ecore_x/xlib/ecore_x_xi2.c @@ -70,7 +70,7 @@ _ecore_x_input_handler(XEvent *xevent) XIDeviceEvent *evd = (XIDeviceEvent *)(xevent->xcookie.data); int devid = evd->deviceid; int i; - + if (_ecore_x_xi2_devs) { for (i = 0; i < _ecore_x_xi2_num; i++) @@ -237,26 +237,38 @@ ecore_x_input_multi_select(Ecore_X_Window win) } else if (dev->use == XISlavePointer) { - XIEventMask eventmask; - unsigned char mask[4] = { 0 }; - - eventmask.deviceid = dev->deviceid; - eventmask.mask_len = sizeof(mask); - eventmask.mask = mask; - XISetMask(mask, XI_ButtonPress); - XISetMask(mask, XI_ButtonRelease); - XISetMask(mask, XI_Motion); -#ifdef XI_TouchUpdate - XISetMask(mask, XI_TouchUpdate); -#endif -#ifdef XI_TouchBegin - XISetMask(mask, XI_TouchBegin); -#endif -#ifdef XI_TouchEnd - XISetMask(mask, XI_TouchEnd); -#endif - XISelectEvents(_ecore_x_disp, win, &eventmask, 1); - find = EINA_TRUE; + XIDeviceInfo *atdev = NULL; + int j; + + for (j = 0; j < _ecore_x_xi2_num; j++) + { + if (_ecore_x_xi2_devs[j].deviceid == dev->attachment) + atdev = &(_ecore_x_xi2_devs[j]); + } + if (((atdev) && (atdev->use != XIMasterPointer)) || + (!atdev)) + { + XIEventMask eventmask; + unsigned char mask[4] = { 0 }; + + eventmask.deviceid = dev->deviceid; + eventmask.mask_len = sizeof(mask); + eventmask.mask = mask; + XISetMask(mask, XI_ButtonPress); + XISetMask(mask, XI_ButtonRelease); + XISetMask(mask, XI_Motion); +# ifdef XI_TouchUpdate + XISetMask(mask, XI_TouchUpdate); +# endif +# ifdef XI_TouchBegin + XISetMask(mask, XI_TouchBegin); +# endif +# ifdef XI_TouchEnd + XISetMask(mask, XI_TouchEnd); +# endif + XISelectEvents(_ecore_x_disp, win, &eventmask, 1); + find = EINA_TRUE; + } } }