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;
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
{