rotation: fixed a rotation block issue caused by disabled rotation degree. 49/122549/1
authorGwanglim Lee <gl77.lee@samsung.com>
Sat, 1 Apr 2017 15:07:53 +0000 (00:07 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Mon, 3 Apr 2017 03:48:39 +0000 (12:48 +0900)
There was a bug. When user rotated the target to 180 degrees, then given
angle was processing in spite of disabled angle if prior rotation change
job was not finished.

We have changed the rotation logic of the display server to discard angle
if it is disabled by the configuration file.

Change-Id: I0a38e7fef4eae2b384ca1d6fe653bd3a43002995

src/rotation/e_mod_rotation_wl.c

index 039bb37..53749ce 100644 (file)
@@ -1778,6 +1778,15 @@ e_zone_rotation_set(E_Zone *zone, int rotation)
         if ((zone->rot.wait_for_done) ||
             (zone->rot.block.mod_count > 0))
           {
+             if ((!zone->rot.unblock.app_hint) &&
+                 (!e_mod_pol_conf_rot_enable_get(rotation)))
+               {
+                  ELOGF("ROTATION", "ZONE_ROT |SKIP|zone:%d curr:%d rotation:%d config is not allowed",
+                        NULL, NULL, zone->num, zone->rot.curr, rotation);
+                  zone->rot.unknown_state = EINA_FALSE;
+                  return;
+               }
+
              INF("Pending Zone Rotation: wait_for_done %d block_count %d",
                  zone->rot.wait_for_done, zone->rot.block.mod_count);
              zone->rot.next = rotation;