rotation: modify code handling available/preferred angle (2nd version) 03/110403/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 16 Jan 2017 08:52:21 +0000 (17:52 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 16 Jan 2017 08:52:21 +0000 (17:52 +0900)
We add code to check whether the window is mapped or not. If window is not mapped,
then we change the current angle to available/preferred angle.

Change-Id: I296e49f567c40f0ecf698313351d6cfb31d818e5

src/rotation/e_mod_rotation_wl.c

index 5488bd7..13721aa 100644 (file)
@@ -316,13 +316,20 @@ _e_tizen_rotation_set_available_angles_cb(struct wl_client *client,
 
         if (tz_angle)
           {
-             EDBG(ec, "Send Change Rotation: angle %d for redering preparation of landscape only app", tz_angle);
+             EDBG(ec, "Send Change Rotation: angle %d for redering preparation of landscape only app. mapped:%d", tz_angle, ec->first_mapped);
              serial = wl_display_next_serial(e_comp_wl->wl.disp);
 
-             rot->angle_change_done = EINA_FALSE;
-             rot->prev_angle = rot->cur_angle;
-             rot->cur_angle = tz_angle;
-             rot->serial = serial;
+             if (ec->first_mapped)
+               {
+                  rot->angle_change_done = EINA_FALSE;
+                  rot->prev_angle = rot->cur_angle;
+                  rot->cur_angle = tz_angle;
+                  rot->serial = serial;
+               }
+             else
+               {
+                  ec->e.state.rot.ang.curr = TIZEN_ROTATION_ANGLE_TO_INT(tz_angle);
+               }
 
              EINA_LIST_FOREACH(rot->rotation_list, l, res)
                {
@@ -374,13 +381,20 @@ _e_tizen_rotation_set_preferred_angle_cb(struct wl_client *client,
 
         if (tz_angle)
           {
-             EDBG(ec, "Send Change Rotation: angle %d for redering preparation of landscape only app", tz_angle);
+             EDBG(ec, "Send Change Rotation: angle %d for redering preparation of landscape only app. mapped:%d", tz_angle, ec->first_mapped);
              serial = wl_display_next_serial(e_comp_wl->wl.disp);
 
-             rot->angle_change_done = EINA_FALSE;
-             rot->prev_angle = rot->cur_angle;
-             rot->cur_angle = tz_angle;
-             rot->serial = serial;
+             if (ec->first_mapped)
+               {
+                  rot->angle_change_done = EINA_FALSE;
+                  rot->prev_angle = rot->cur_angle;
+                  rot->cur_angle = tz_angle;
+                  rot->serial = serial;
+               }
+             else
+               {
+                  ec->e.state.rot.ang.curr = TIZEN_ROTATION_ANGLE_TO_INT(tz_angle);
+               }
 
              EINA_LIST_FOREACH(rot->rotation_list, l, res)
                {