}
static Eina_Bool
-_e_gesture_process_touch_check(Ecore_Device *dev, int finger)
+_e_gesture_process_touch_check(Ecore_Device *dev, int finger, int x, int y)
{
+ int comp_w = 0, comp_h = 0;
if ((!gesture->grabbed_gesture) ||
(e_gesture_is_touch_device(dev) == EINA_FALSE) ||
(finger > E_GESTURE_FINGER_MAX))
{
return EINA_FALSE;
}
+
+ e_comp_size_get(&comp_w, &comp_h);
+ if ((x < 0) || (x > comp_w - 1) || (y < 0) || (y > comp_h - 1))
+ return EINA_FALSE;
+
return EINA_TRUE;
}
{
Ecore_Event_Mouse_Button *ev = event;
- if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device))
+ if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device, ev->x, ev->y))
return E_GESTURE_EVENT_STATE_PROPAGATE;
gesture->gesture_events.base_point[ev->multi.device + 1].pressed = EINA_TRUE;
GTWRN("Mouse Cancel. id:%d dev:%s", ev->multi.device,
ev->dev ? ecore_device_identifier_get(ev->dev) : "No device");
- if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device))
- return E_GESTURE_EVENT_STATE_PROPAGATE;
-
gesture->gesture_events.base_point[ev->multi.device + 1].pressed = EINA_FALSE;
gesture->gesture_events.base_point[ev->multi.device + 1].axis.x = 0;
gesture->gesture_events.base_point[ev->multi.device + 1].axis.y = 0;
{
Ecore_Event_Mouse_Button *ev = event;
- if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device))
+ if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device, ev->x, ev->y))
return E_GESTURE_EVENT_STATE_PROPAGATE;
gesture->gesture_events.base_point[ev->multi.device + 1].axis.x = ev->x;
{
Ecore_Event_Mouse_Move *ev = event;
- if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device))
+ if (!_e_gesture_process_touch_check(ev->dev, ev->multi.device, ev->x, ev->y))
return E_GESTURE_EVENT_STATE_PROPAGATE;
if (gesture->gesture_events.num_pressed == 0)