rotation: add code to send E_EVENT_CLIENT_ROTATION_GEOMETRY_SET event 39/215939/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 17 Oct 2019 23:34:33 +0000 (08:34 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 17 Oct 2019 23:34:33 +0000 (08:34 +0900)
Change-Id: Id818c55d63936c3aa0280e0e73597a0305075aa9

src/rotation/e_mod_rotation_wl.c

index fda90fe..f829eaf 100644 (file)
@@ -142,6 +142,8 @@ static void      _e_client_event_client_rotation_change_begin_free(void *data, v
 static void      _e_client_event_client_rotation_change_cancel_send(E_Client *ec);
 static void      _e_client_event_client_rotation_change_cancel_free(void *data, void *ev);
 static void      _e_client_event_client_rotation_change_end_free(void *data, void *ev);
+static void      _e_client_event_client_rotation_geometry_set_send(E_Client *ec, unsigned int angle, int x, int y, int w, int h);
+static void      _e_client_event_client_rotation_geometry_set_free(void *data, void *ev);
 
 /* local subsystem e_zone_rotation related functions */
 static void      _e_zone_event_rotation_change_begin_free(void *data, void *ev);
@@ -662,12 +664,13 @@ _e_tizen_rotation_ack_angle_change_cb(struct wl_client *client,
 static void
 _e_tizen_rotation_set_geometry_hint_cb(struct wl_client *client,
                                       struct wl_resource *resource,
-                                      uint32_t angle,
+                                      uint32_t tz_angle,
                                       uint32_t x, uint32_t y, uint32_t w, uint32_t h)
 {
    E_Client *ec;
    Policy_Ext_Rotation *rot;
    int i = -1;
+   int angle = 0;
 
    rot = wl_resource_get_user_data(resource);
    EINA_SAFETY_ON_NULL_RETURN(rot);
@@ -676,19 +679,23 @@ _e_tizen_rotation_set_geometry_hint_cb(struct wl_client *client,
    if (!ec)
      return;
 
-   switch (angle)
+   switch (tz_angle)
      {
         case TIZEN_ROTATION_ANGLE_0:
           i = 0;
+          angle = 0;
           break;
         case TIZEN_ROTATION_ANGLE_90:
           i = 1;
+          angle = 90;
           break;
         case TIZEN_ROTATION_ANGLE_180:
           i = 2;
+          angle = 180;
           break;
         case TIZEN_ROTATION_ANGLE_270:
           i = 3;
+          angle = 270;
           break;
         default:
           return;
@@ -698,6 +705,8 @@ _e_tizen_rotation_set_geometry_hint_cb(struct wl_client *client,
    ec->e.state.rot.geom[i].y = y;
    ec->e.state.rot.geom[i].w = w;
    ec->e.state.rot.geom[i].h = h;
+
+   _e_client_event_client_rotation_geometry_set_send(ec, angle, x, y, w, h);
 }
 
 static void
@@ -1421,6 +1430,37 @@ _e_client_event_client_rotation_change_end_free(void *data __UNUSED__,
 }
 
 static void
+_e_client_event_client_rotation_geometry_set_send(E_Client *ec, unsigned int angle, int x, int y, int w, int h)
+{
+   E_Event_Client_Rotation_Geometry_Set *ev = NULL;
+   ev = E_NEW(E_Event_Client_Rotation_Geometry_Set, 1);
+   if (ev)
+     {
+        ev->ec = ec;
+        ev->angle = angle;
+        ev->x = x;
+        ev->y = y;
+        ev->w = w;
+        ev->h = h;
+        e_object_ref(E_OBJECT(ec));
+        ecore_event_add(E_EVENT_CLIENT_ROTATION_GEOMETRY_SET,
+                        ev,
+                        _e_client_event_client_rotation_geometry_set_free,
+                        NULL);
+     }
+}
+
+static void
+_e_client_event_client_rotation_geometry_set_free(void *data __UNUSED__,
+                                                  void *ev)
+{
+   E_Event_Client_Rotation_Geometry_Set *e;
+   e = ev;
+   e_object_unref(E_OBJECT(e->ec));
+   E_FREE(e);
+}
+
+static void
 _e_zone_event_rotation_change_begin_free(void *data __UNUSED__,
                                          void      *ev)
 {