Merge upstream r66310
[framework/uifw/elementary.git] / src / lib / elm_gesture_layer.c
index 2362d26..a37bba1 100644 (file)
@@ -297,11 +297,13 @@ compare_device(const void *data1, const void *data2)
 static Eina_List *
 _remove_touched_device(Eina_List *list, Pointer_Event *pe)
 {
+   Eina_List *lst = NULL;
    Pointer_Event *p = eina_list_search_unsorted(list, compare_device, pe);
    if (p)
      {
+        lst = eina_list_remove(list, p);
         free(p);
-        return eina_list_remove(list, p);
+        return lst;
      }
 
    return list;
@@ -2712,7 +2714,7 @@ _rotate_test(Evas_Object *obj, Pointer_Event *pe, void *event_info,
    if (!wd->gesture[g_type]) return;
 
    Gesture_Info *gesture = wd->gesture[g_type];
-   Rotate_Type *st = gesture->data;
+   Rotate_Type *st;
    if (gesture)
    {
       st = gesture->data;
@@ -3048,6 +3050,8 @@ _event_process(void *data, Evas_Object *obj __UNUSED__,
    if (_make_pointer_event(data, event_info, event_type, &_pe))
      pe = &_pe;
 
+   if (!pe) return;
+
    if (IS_TESTED(ELM_GESTURE_N_LONG_TAPS))
      _n_long_tap_test(data, pe, event_info, event_type,
            ELM_GESTURE_N_LONG_TAPS);
@@ -3065,7 +3069,7 @@ _event_process(void *data, Evas_Object *obj __UNUSED__,
    if (IS_TESTED(ELM_GESTURE_N_FLICKS))
      _n_line_test(data, pe, event_info, event_type, ELM_GESTURE_N_FLICKS);
 
-   if (IS_TESTED(ELM_GESTURE_ZOOM))
+   if (_elm_config->glayer_zoom_finger_enable && IS_TESTED(ELM_GESTURE_ZOOM))
      _zoom_test(data, pe, event_info, event_type, ELM_GESTURE_ZOOM);
 
    if (IS_TESTED(ELM_GESTURE_ZOOM))
@@ -3311,12 +3315,8 @@ elm_gesture_layer_add(Evas_Object *parent)
    Evas *e;
    Widget_Data *wd;
 
-   EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
+   ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
 
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-   obj = elm_widget_add(e);
    ELM_SET_WIDTYPE(widtype, "gesture_layer");
    elm_widget_type_set(obj, "gesture_layer");
    elm_widget_sub_object_add(parent, obj);