switch (xevent->xcookie.evtype)
{
-#ifdef ECORE_XI2_2
- case XI_TouchUpdate:
- if (!_ecore_x_input_grabbed_is(devid))
- break;
-#endif
case XI_Motion:
INF("Handling XI_Motion");
_ecore_mouse_move
evd->root_x, evd->root_y);
break;
-#ifdef ECORE_XI2_2
- case XI_TouchBegin:
- if (!_ecore_x_input_grabbed_is(devid))
- break;
-#endif
case XI_ButtonPress:
INF("ButtonEvent:multi press time=%u x=%d y=%d devid=%d", (unsigned int)evd->time, (int)evd->event_x, (int)evd->event_y, devid);
_ecore_mouse_button
evd->root_x, evd->root_y);
break;
-#ifdef ECORE_XI2_2
- case XI_TouchEnd:
- if (!_ecore_x_input_grabbed_is(devid))
- break;
-#endif
case XI_ButtonRelease:
INF("ButtonEvent:multi release time=%u x=%d y=%d devid=%d", (unsigned int)evd->time, (int)evd->event_x, (int)evd->event_y, devid);
_ecore_mouse_button
XIDeviceEvent *evd = (XIDeviceEvent *)(xevent->xcookie.data);
int devid = evd->deviceid;
int i = _ecore_x_input_touch_index_get(devid, evd->detail, XI_TouchUpdate);
- if ((i == 0) && (evd->flags & XITouchEmulatingPointer)) return;
+ if ((i == 0) && (evd->flags & XITouchEmulatingPointer) && !_ecore_x_input_grabbed_is(devid)) return;
INF("Handling XI_TouchUpdate");
_ecore_mouse_move(evd->time,
0, // state
XIDeviceEvent *evd = (XIDeviceEvent *)(xevent->xcookie.data);
int devid = evd->deviceid;
int i = _ecore_x_input_touch_index_get(devid, evd->detail, XI_TouchBegin);
- if ((i == 0) && (evd->flags & XITouchEmulatingPointer)) return;
+ if ((i == 0) && (evd->flags & XITouchEmulatingPointer) && !_ecore_x_input_grabbed_is(devid)) return;
INF("Handling XI_TouchBegin");
_ecore_mouse_button(ECORE_EVENT_MOUSE_BUTTON_DOWN,
evd->time,
XIDeviceEvent *evd = (XIDeviceEvent *)(xevent->xcookie.data);
int devid = evd->deviceid;
int i = _ecore_x_input_touch_index_get(devid, evd->detail, XI_TouchEnd);
- if ((i == 0) && (evd->flags & XITouchEmulatingPointer))
+ if ((i == 0) && (evd->flags & XITouchEmulatingPointer) && !_ecore_x_input_grabbed_is(devid))
{
_ecore_x_input_touch_index_clear(devid, i);
return;
if ((dev->use == XISlavePointer) &&
!(evd->flags & XIPointerEmulated))
{
- if (evd->flags & XITouchEmulatingPointer)
- _ecore_x_input_mouse_handler(xevent);
- else
- _ecore_x_input_multi_handler(xevent);
+ _ecore_x_input_multi_handler(xevent);
}
else if (dev->use == XIFloatingSlave)
_ecore_x_input_mouse_handler(xevent);