fix some bugs about deactivate gesture 88/216488/1
authorjeon <jhyuni.kang@samsung.com>
Fri, 25 Oct 2019 10:13:58 +0000 (19:13 +0900)
committerjeon <jhyuni.kang@samsung.com>
Fri, 25 Oct 2019 10:13:58 +0000 (19:13 +0900)
Change-Id: I2600dce733f2edaca0a6c7f8d39ba3b148625b6c

src/e_mod_gesture_events.c
src/e_mod_main.c
src/e_mod_main.h

index c35fb65..f4074cd 100644 (file)
@@ -1044,7 +1044,7 @@ _e_gesture_process_pan_move(Ecore_Event_Mouse_Move *ev)
 static void
 _e_gesture_process_pan_up(Ecore_Event_Mouse_Button *ev)
 {
-   E_Gesture_Event_Pan *pans = &gesture->gesture_events.pans;
+   //E_Gesture_Event_Pan *pans = &gesture->gesture_events.pans;
 
    _e_gesture_pan_cancel();
 }
@@ -1209,7 +1209,7 @@ _e_gesture_process_pinch_move(Ecore_Event_Mouse_Move *ev)
 static void
 _e_gesture_process_pinch_up(Ecore_Event_Mouse_Button *ev)
 {
-   E_Gesture_Event_Pinch *pinch = &gesture->gesture_events.pinchs;
+   //E_Gesture_Event_Pinch *pinch = &gesture->gesture_events.pinchs;
 
    _e_gesture_pinch_cancel();
 }
index 9ab63cd..1146b81 100644 (file)
@@ -1225,11 +1225,11 @@ static Eina_Bool
 _e_gesture_deactivate_find_surface(Eina_List *list, struct wl_resource *surface)
 {
    Eina_List *l;
-   E_Gesture_Activate_Surface_Info *idata;
+   struct wl_resource *surface_data;
 
-   EINA_LIST_FOREACH(list, l, idata)
+   EINA_LIST_FOREACH(list, l, surface_data)
      {
-        if (surface == idata->surface)
+        if (surface_data == surface)
           {
              return EINA_TRUE;
           }
@@ -1327,6 +1327,7 @@ static int
 _e_gesture_deactivate_list_set(struct wl_client *client, struct wl_resource *surface, E_Gesture_Activate_Info *info, unsigned int type)
 {
    int ret = TIZEN_GESTURE_ERROR_NONE;
+   E_Client *focused_ec = NULL;
 
    if (surface)
      {
@@ -1334,6 +1335,12 @@ _e_gesture_deactivate_list_set(struct wl_client *client, struct wl_resource *sur
           {
              info->surfaces = eina_list_append(info->surfaces, surface);
              _e_gesture_deactivate_listener_add(client, surface);
+             focused_ec = e_client_focused_get();
+             if (focused_ec && focused_ec->comp_data && focused_ec->comp_data->wl_surface &&
+                 surface == focused_ec->comp_data->wl_surface)
+               {
+                  info->active = EINA_FALSE;
+               }
           }
      }
    else if (!info->client)
index 13d03df..dfe43c3 100644 (file)
@@ -85,7 +85,6 @@ typedef struct _E_Gesture_Finger E_Gesture_Finger;
 typedef struct _E_Gesture_Event_Info E_Gesture_Event_Info;
 typedef struct _E_Gesture_Event_Client E_Gesture_Event_Client;
 typedef struct _E_Gesture_Select_Surface E_Gesture_Select_Surface;
-typedef struct _E_Gesture_Activate_Surface_Info E_Gesture_Activate_Surface_Info;
 typedef struct _E_Gesture_Activate_Info E_Gesture_Activate_Info;
 
 typedef enum _E_Gesture_Edge E_Gesture_Edge;
@@ -148,12 +147,6 @@ struct _E_Gesture_Event_Info
    void *event;
 };
 
-struct _E_Gesture_Activate_Surface_Info
-{
-   Eina_Bool active;
-   struct wl_resource *surface;
-};
-
 struct _E_Gesture_Activate_Info
 {
    Eina_Bool active;