input->focus.touch = window;
input->timestamp = timestamp;
input->grab.touch_count++;
+ //TIZEN_ONLY(20210208): add touch id slots for distinguishing single touch and multi touch.
+ input->grab.touch_array[id] = EINA_TRUE;
+ //
// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
_ecore_wl2_input_touch_axis_process(input, id);
BTN_LEFT, timestamp);
if (input->grab.count) input->grab.count--;
- if (input->grab.touch_count) input->grab.touch_count--;
+ //TIZEN_ONLY(20210208): add touch id slots for distinguishing single touch and multi touch.
+ if (input->grab.touch_array[id] && input->grab.touch_count) input->grab.touch_count--;
+ if (input->grab.touch_array[id]) input->grab.touch_array[id] = EINA_FALSE;
+ //
if ((input->grab.window) && (input->grab.button == BTN_LEFT) &&
(!input->grab.count) && !input->grab.touch_count)
_ecore_wl2_input_ungrab(input);
ERR("[cancel] time=%u window=0x%x", ev->timestamp, ev->window);
//
+ //TIZEN_ONLY(20210208): add touch id slots for distinguishing single touch and multi touch.
+ for (int i = 0; i < ECORE_WL2_TOUCH_MAX; i++)
+ input->grab.touch_array[i] = EINA_FALSE;
+ input->focus.touch = NULL;
+ input->grab.count = 0;
+ _ecore_wl2_input_ungrab(input);
+ //
+
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_CANCEL, ev, NULL, _input_event_mouse_button_cb_free);
//
}
if ((input->focus.keyboard) &&
(input->focus.keyboard == window))
input->focus.keyboard = NULL;
+ //TIZEN_ONLY(20210208): add touch id slots for distinguishing single touch and multi touch.
+ if ((input->focus.touch) &&
+ (input->focus.touch == window))
+ {
+ for (int i = 0; i < ECORE_WL2_TOUCH_MAX; i++)
+ input->grab.touch_array[i] = EINA_FALSE;
+ input->focus.touch = NULL;
+ input->grab.count = 0;
+ _ecore_wl2_input_ungrab(input);
+ }
+ //
if ((input->repeat_win) &&
(input->repeat_win == window))
{