ELM_CONFIG_VAL(D, T, glayer_flick_time_limit_ms, T_INT);
ELM_CONFIG_VAL(D, T, glayer_long_tap_start_timeout, T_DOUBLE);
ELM_CONFIG_VAL(D, T, glayer_double_tap_timeout, T_DOUBLE);
+ ELM_CONFIG_VAL(D, T, glayer_tap_finger_size, T_INT);
ELM_CONFIG_VAL(D, T, access_mode, T_UCHAR);
ELM_CONFIG_VAL(D, T, selection_clear_enable, T_UCHAR);
ELM_CONFIG_VAL(D, T, glayer_continues_enable, T_UCHAR);
_elm_config->glayer_long_tap_start_timeout = 1.2; /* 1.2 second to start long-tap */
_elm_config->glayer_double_tap_timeout = 0.25; /* 0.25 seconds between 2 mouse downs of a tap. */
_elm_config->glayer_continues_enable = EINA_TRUE; /* Continue gestures default */
+ _elm_config->glayer_tap_finger_size = 10;
_elm_config->access_mode = ELM_ACCESS_MODE_OFF;
_elm_config->selection_clear_enable = EINA_FALSE;
_elm_config->week_start = 1; /* monday */
KEEP_VAL(glayer_flick_time_limit_ms);
KEEP_VAL(glayer_long_tap_start_timeout);
KEEP_VAL(glayer_double_tap_timeout);
+ KEEP_VAL(glayer_tap_finger_size);
KEEP_VAL(access_mode);
KEEP_VAL(glayer_continues_enable);
KEEP_VAL(week_start);
s = getenv("ELM_POPUP_SCROLLABLE");
if (s) _elm_config->popup_scrollable = atoi(s);
+ s = getenv("ELM_GLAYER_TAP_FINGER_SIZE");
+ if (s) _elm_config->glayer_tap_finger_size = atoi(s);
+
s = getenv("EFL_UI_DND_DRAG_ANIM_DURATION");
if (s) _elm_config->drag_anim_duration = _elm_atof(s);
}
* @ingroup Elm_Gesture_Layer
*/
static Eina_Bool
-_tap_gesture_check_finish(Gesture_Info *gesture, Evas_Coord tap_finger_size)
+_tap_gesture_check_finish(Gesture_Info *gesture)
{
/* Here we check if taps-gesture was completed successfully */
/* Count how many taps were received on each device then */
Eina_List *pe_list;
Eina_Rectangle base = {0, 0, 0, 0};
Eina_Rectangle tmp = {0, 0, 0, 0};
- if (!tap_finger_size) /* Use system default if not set by user */
- tap_finger_size = elm_config_finger_size_get();
+
+ ELM_GESTURE_LAYER_DATA_GET(gesture->obj, sd);
if (!st->l) return EINA_FALSE;
EINA_LIST_FOREACH(st->l, l, pe_list)
{ /* Compare all other rects to base, tolerance is finger size */
if (_taps_rect_get(st->l, i, &tmp))
{
- if (abs(tmp.x - base.x) > tap_finger_size)
+ if (abs(tmp.x - base.x) > sd->tap_finger_size)
return EINA_FALSE;
- if (abs(tmp.y - base.y) > tap_finger_size)
+ if (abs(tmp.y - base.y) > sd->tap_finger_size)
return EINA_FALSE;
- if (abs((tmp.x + tmp.w) - (base.x + base.w)) > tap_finger_size)
+ if (abs((tmp.x + tmp.w) - (base.x + base.w)) > sd->tap_finger_size)
return EINA_FALSE;
- if (abs((tmp.y + tmp.h) - (base.y + base.h)) > tap_finger_size)
+ if (abs((tmp.y + tmp.h) - (base.y + base.h)) > sd->tap_finger_size)
return EINA_FALSE;
}
}
* @ingroup Elm_Gesture_Layer
*/
static void
-_tap_gesture_finish(void *data, Evas_Coord tap_finger_size)
+_tap_gesture_finish(void *data)
{
/* This function will test each tap gesture when timer expires */
Elm_Gesture_State s = ELM_GESTURE_STATE_ABORT;
Gesture_Info *gesture = data;
Taps_Type *st = gesture->data;
- if (_tap_gesture_check_finish(gesture, tap_finger_size))
+ if (_tap_gesture_check_finish(gesture))
{
s = ELM_GESTURE_STATE_END;
}
ELM_GESTURE_LAYER_DATA_GET(data, sd);
if (IS_TESTED(ELM_GESTURE_N_TAPS))
- _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_TAPS],
- sd->tap_finger_size);
+ _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_TAPS]);
if (IS_TESTED(ELM_GESTURE_N_DOUBLE_TAPS))
- _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_DOUBLE_TAPS],
- sd->tap_finger_size);
+ _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_DOUBLE_TAPS]);
if (IS_TESTED(ELM_GESTURE_N_TRIPLE_TAPS))
- _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_TRIPLE_TAPS],
- sd->tap_finger_size);
+ _tap_gesture_finish(sd->gesture[ELM_GESTURE_N_TRIPLE_TAPS]);
_clear_if_finished(data);
sd->gest_taps_timeout = NULL;
((gesture->g_type == ELM_GESTURE_N_DOUBLE_TAPS) &&
!IS_TESTED(ELM_GESTURE_N_TRIPLE_TAPS)))
{ /* Test for finish immediately, not waiting for timeout */
- if (_tap_gesture_check_finish(gesture, sd->tap_finger_size))
+ if (_tap_gesture_check_finish(gesture))
{
- _tap_gesture_finish(gesture, sd->tap_finger_size);
+ _tap_gesture_finish(gesture);
return;
}
}
priv->long_tap_start_timeout = _elm_config->glayer_long_tap_start_timeout;
priv->repeat_events = EINA_TRUE;
priv->glayer_continues_enable = _elm_config->glayer_continues_enable;
+ priv->tap_finger_size = _elm_config->glayer_tap_finger_size;
/* FIXME: Hack to get around old configs - if too small, enlarge. */
if (_elm_config->glayer_double_tap_timeout < 0.00001)