rotation: Do not swap width/height if difference with rotation angle is 180 41/116441/1
authorDuna Oh <duna.oh@samsung.com>
Fri, 24 Feb 2017 08:53:08 +0000 (17:53 +0900)
committerDuna Oh <duna.oh@samsung.com>
Fri, 24 Feb 2017 08:53:50 +0000 (17:53 +0900)
Signed-off-by: Duna Oh <duna.oh@samsung.com>
Change-Id: I9e66c85ffdbb4379d28b64bb17e065d7d261f30f

src/rotation/e_mod_rotation_wl.c

index 49c1398..9e913a6 100644 (file)
@@ -676,10 +676,14 @@ _e_tizen_rotation_send_angle_change(E_Client *ec, int angle)
    struct wl_resource *resource;
    enum tizen_rotation_angle tz_angle = TIZEN_ROTATION_ANGLE_0;
    int ver;
+   int rot_diff;
 
    EINA_SAFETY_ON_NULL_RETURN(ec);
    EINA_SAFETY_ON_NULL_RETURN(rot_hash);
 
+   rot_diff = ec->e.state.rot.ang.curr - angle;
+   if (rot_diff < 0) rot_diff = -rot_diff;
+
    rot = eina_hash_find(rot_hash, &ec);
    if (!rot) return;
 
@@ -715,10 +719,20 @@ _e_tizen_rotation_send_angle_change(E_Client *ec, int angle)
         if ((ver >= 2) &&
             ((ec->floating) || (e_policy_client_is_keyboard_magnifier(ec))))
           {
-             EDBG(ec, "Send Change Rotation: angle %d mapped:%d serial:%u Resize:%dx%d -> %dx%d",
-                  tz_angle, ec->first_mapped, serial, ec->w, ec->h, ec->h, ec->w);
+             if (rot_diff == 180)
+               {
+                  EDBG(ec, "Send Change Rotation: angle %d mapped:%d serial:%u Resize:%dx%d",
+                       tz_angle, ec->first_mapped, serial, ec->w, ec->h);
 
-             tizen_rotation_send_angle_change_with_resize(resource, tz_angle, serial, ec->h, ec->w);
+                  tizen_rotation_send_angle_change_with_resize(resource, tz_angle, serial, ec->w, ec->h);
+               }
+             else
+               {
+                  EDBG(ec, "Send Change Rotation: angle %d mapped:%d serial:%u Resize:%dx%d -> %dx%d",
+                       tz_angle, ec->first_mapped, serial, ec->w, ec->h, ec->h, ec->w);
+
+                  tizen_rotation_send_angle_change_with_resize(resource, tz_angle, serial, ec->h, ec->w);
+               }
           }
         else
           {