EOLIAN static void
_efl_input_pointer_button_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, int but)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_BUTTON);
pd->button = but;
}
{
if (button < 0) return;
if (button > 31) return;
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_BUTTONS_PRESSED);
if (pressed)
pd->button_flags |= (1 << button);
else
EOLIAN static void
_efl_input_pointer_position_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, int x, int y)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_X);
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_Y);
pd->cur.x = (double) x;
pd->cur.y = (double) y;
}
EOLIAN static void
_efl_input_pointer_previous_position_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, int x, int y)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_PREVIOUS_X);
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_PREVIOUS_Y);
pd->prev.x = (double) x;
pd->prev.y = (double) y;
}
EOLIAN static void
_efl_input_pointer_efl_input_event_timestamp_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, double ms)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_TIMESTAMP);
pd->timestamp = (unsigned int) ms;
}
EOLIAN static void
_efl_input_pointer_wheel_direction_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, Efl_Orient dir)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_WHEEL_DIRECTION);
pd->wheel.dir = dir;
}
EOLIAN static void
_efl_input_pointer_wheel_delta_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, int dist)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_WHEEL_DELTA);
pd->wheel.z = dist;
}
EOLIAN static void
_efl_input_pointer_tool_set(Eo *obj EINA_UNUSED, Efl_Input_Pointer_Data *pd, int id)
{
+ _efl_input_value_mark(pd, EFL_INPUT_VALUE_TOOL);
pd->tool = id;
}
return EINA_FALSE;
}
+ _efl_input_value_mark(pd, key);
return EINA_TRUE;
}
Evas *eo_e;
int addgrab = 0;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTON);
+
if (!e || !ev) return;
b = ev->button;
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
ev->tool = 0;
+ ev->action = EFL_POINTER_ACTION_DOWN;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
int event_id, b;
Evas *eo_e;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTON);
+
if (!e || !ev) return;
b = ev->button;
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
ev->tool = 0;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
Evas *eo_e;
int i;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
if (e->is_frozen) return;
_canvas_event_feed_mouse_updown_legacy(eo_e, i + 1, 0, ev->timestamp, ev->data, 0);
}
+ ev->action = EFL_POINTER_ACTION_CANCEL;
+ ev->value_flags |= value_flags;
ev->event_flags = flags;
EINA_LIST_FOREACH_SAFE(e->touch_points, l, ll, point)
{
if ((point->state == EVAS_TOUCH_POINT_DOWN) ||
(point->state == EVAS_TOUCH_POINT_MOVE))
{
- ev->button = point->id;
+ ev->tool = point->id;
ev->cur.x = point->x;
ev->cur.y = point->y;
_canvas_event_feed_multi_up_internal(e, ev);
Evas_Object *eo_obj;
int event_id = 0;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_WHEEL_DELTA) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_WHEEL_DIRECTION);
+
if (e->is_frozen) return;
e->last_timestamp = pe->timestamp;
ev->event_flags = e->default_event_flags;
ev->device = efl_ref(_evas_device_top_get(eo_e));
ev->action = EFL_POINTER_ACTION_WHEEL;
+ ev->value_flags |= value_flags;
_evas_walk(e);
copy = evas_event_list_copy(e->pointer.object.in);
int event_id;
int x, y, px, py;
+ // inform which values are valid
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_PREVIOUS_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_PREVIOUS_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_DX) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_DY) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTONS_PRESSED) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
if (e->is_frozen) return;
ev->event_flags = e->default_event_flags;
ev->pressed_buttons = e->pointer.button;
ev->tool = 0;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
Evas_Object *eo_obj;
int event_id;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTONS_PRESSED) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
e->pointer.inside = 1;
ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
event_id = _evas_object_event_new();
Evas_Object *eo_obj;
int event_id;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTONS_PRESSED) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
e->pointer.inside = 0;
ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
int event_id;
int addgrab = 0;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_BUTTON);
+
if (!e || !ev) return;
eo_e = e->evas;
ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
Evas *eo_e;
int event_id;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
eo_e = e->evas;
ev->modifiers = &(e->modifiers);
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
_evas_walk(e);
Evas *eo_e;
int event_id;
+ /* FIXME: Add previous x,y information (from evas touch point list) */
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_X) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_Y) |
+ _efl_input_value_mask(EFL_INPUT_VALUE_TOOL);
+
if (!e || !ev) return;
eo_e = e->evas;
ev->locks = &(e->locks);
ev->event_flags = e->default_event_flags;
ev->action = EFL_POINTER_ACTION_MOVE;
+ ev->value_flags |= value_flags;
if (ev->device) efl_ref(ev->device);
point = ev->cur;
int event_id = 0;
Evas *eo_e;
+ static const int value_flags =
+ _efl_input_value_mask(EFL_INPUT_VALUE_TIMESTAMP);
+
if (!e || !ev) return;
if (e->is_frozen) return;
e->last_timestamp = ev->timestamp;
ev->action = EFL_POINTER_ACTION_AXIS;
+ ev->value_flags |= value_flags;
event_id = _evas_object_event_new();
evt = ev->eo;